purebasic.info

PureBasic forum
Текущее время: Чт июн 04, 2020 5:25 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 385 ]  На страницу 1, 2, 3, 4, 5 ... 26  След.
Автор Сообщение
 Заголовок сообщения: COM порт
СообщениеДобавлено: Пн апр 09, 2007 5:43 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11650
Благодарил (а): 4 раз.
Поблагодарили: 502 раз.
Я совсем недавно начал изучать PureBasic, пока только пишу очень простые программы. Хотел связать комп с PIC контроллером через COM порт, а как написать прогу на PureBasic'е, чтобы она могла обмениваться инфой с контроллером, не знаю. Задача осложняется тем, что у меня ОСь WinXP, а значит напрямую с портом общаться нельзя. Может, кто подскажет, как в этом бейсике происходит обмен инфой с COM портом.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 6:15 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Цитата:
Задача осложняется тем, что у меня ОСь WinXP

Чтоб задачи не осложнялись, у меня стоЯт все оси и MS-Dos.
Что мешает поставить нужную?..



Самоучитель по программированию PIC контроллеров для начинающих
(руководство по конструированию устройств на микроконтроллерах)

http://ikarab.narod.ru/Kea_20.html
Цитата:
как в этом бейсике происходит обмен инфой с COM портом.
Я не знаю как, но уверен, что также, как и в любом другом.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 7:49 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11650
Благодарил (а): 4 раз.
Поблагодарили: 502 раз.
Цитата:
Что мешает поставить нужную?..

XP больше нравиться.
Цитата:
Самоучитель по программированию PIC

Классный сайт.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 8:27 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
В интернете только два классных сайта.
Этот и все остальные.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 11:12 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн ноя 27, 2006 2:43 pm
Сообщений: 934
Откуда: Санкт-Петербург
Благодарил (а): 1 раз.
Поблагодарили: 12 раз.
Пункты репутации: 15
Библиотека для работы с COM портом:
http://www.purearea.net/pb/download/use ... ARYV12.zip

к ней прилагается help файл и такой пример:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
;To be use with a RS232 loop back connector
MyCom.s = "Com1: baud=300 parity=N data=8 stop=1"
Hcom.l
 
Hcom = ComOpen(MyCom,0,255,255)
If Hcom
 
  MyBuffer1.s = "0123456789"
 
  If ComWrite(Hcom,@MyBuffer1,Len(MyBuffer1))             ;Write the data
    MessageRequester("Writing...","Data: " + MyBuffer1)
   
    NbDataToRead.l = ComInputBufferCount(Hcom)            ; Get the number of data waiting in the com buffer
    MessageRequester("Nb Data...","Waiting in the input buffer: " + Str(NbDataToRead))
   
    If NbDataToRead > 0
      MyBuffer2.s = Space(NbDataToRead)                   ;Set the buffer size to store the data
     
      If ComRead(Hcom,@MyBuffer2,NbDataToRead)            ;Read the data
        MessageRequester("Reading...","Data: " + MyBuffer2)
      EndIf
     
    EndIf
   
  EndIf
 
  ComClose(Hcom)
Else
  MessageRequester("Message","Unable to open the communication port")
EndIf
 



если чего не понятно спрашивай вместе попробуем разобраться
:roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 12:31 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11650
Благодарил (а): 4 раз.
Поблагодарили: 502 раз.
Цитата:
если чего не понятно

Пока всё понятно. Библиотеку установил, вроде работает. На данный момент при изучении "пурика" наибольшие трудности возникают из-за того, что очень мало информации на русском языке. Справка на английском написана так, что иногда вообще ничего не понятно.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 2:03 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Цитата:
Справка на английском написана так, что иногда вообще ничего не понятно.

Мы тут не раз обсуждали эту "справку". Писали её партизаны под пытками. Слова лишнего не вытащишь.
Однако, повторюсь, в этом есть смысл. Не должно быть легко, а то любая овца начнёт программы писать.
Кому надо - разберутся. Информация доступна.
Свежий ветер только избранных пьянит....


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 3:35 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11650
Благодарил (а): 4 раз.
Поблагодарили: 502 раз.
Цитата:
Кому надо - разберутся

Но на это понадобится очень много времени. Я делаю следующим образом, перевожу "Сократом" текст и записываю в тетрадь. Честно сказать, мало приятного, свободного времени хватает на 2-4 команды за один день. Теперь представьте, сколько мне понадобится времени чтобы перевести всю справку.
Цитата:
если чего не понятно спрашивай

Кое-что не понятно. С открытием порта проблем нет, а вот с закрытием... Написал простенькую программу, в выпадающем списке выбираю COM порт и работаю с ним тогда всё ОК, но если мне нужно выбрать другой порт, предыдущий следует закрыть. Вот тут полный облом. Хотел в качестве параметра команды ComClose() использовать переменную com$, в которой хранится номер открытого порта (например COM1), и в результате, в место нормальной компиляции, появилось сообщение что строковые переменные использовать нельзя. Так какой же следует использовать параметр в команде ComClose() ?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 3:46 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн ноя 27, 2006 2:43 pm
Сообщений: 934
Откуда: Санкт-Петербург
Благодарил (а): 1 раз.
Поблагодарили: 12 раз.
Пункты репутации: 15
Код:
1
2
3
Hcom = ComOpen(MyCom,0,255,255)
..............................
ComClose(Hcom)



при открытии порта его хэндл записывается в переменную типа long (в данном случае Hcom), чтобы закрыть порт, в качестве аргумента ф-ции ComClose() надо использовать эту переменную с хэндлом порта.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 4:16 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Цитата:
Я делаю следующим образом, перевожу "Сократом" текст и записываю в тетрадь. Честно сказать, мало приятного, свободного времени хватает на 2-4 команды за один день.

Да ладно, Пётр, 2-4 команды Сократом переводится за 15 секунд.
Я сам Сократом пользуюсь, хотя и англ. слегка знаю.
----
Я тоже шёл таким путем, и я еще использовал переводчик-подстрочник (курсор навёл на слово и всплывает перевод (экономия времени и мысль не теряется.))
---
Можно справку декомпиллировать на на Html-страницы и перевести их кучей. (декомпиллятор CHM - у меня есть, могу выдать.)
----
Со временем забудешь про переводчика, будет по коду понятно.
(навык называется, он сам придёт...)



Цитата:
перевожу "Сократом" текст и записываю в тетрадь

В тетрадь я не догадался переписывать.... :shock: :shock:
Зачем тетрадь-то? У тебя, наверняка, компьютер есть.
Дать тебе пустой файл TXT ?
:D :D


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 4:59 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11650
Благодарил (а): 4 раз.
Поблагодарили: 502 раз.
Цитата:
при открытии порта его хэндл записывается в переменную типа long

Спасибо, теперь понятно.
В команде ComOpen() два последних параметра это входной и выходной буфер. Зачем они вообще нужны.
Цитата:
2-4 команды Сократом переводится за 15 секунд

Оно то так, но качество перевода оставляет желать лучшего. Вот и приходится долго думать что это на самом деле значит. К тому же, у некоторых команд очень большое описание, пока сообразишь что переведённый текст означает, пройдёт немало времени, а если вообще ничего не понятно, приходиться составлять небольшие программки чтобы посмотреть как работает данная команда, для чего нужны некоторые флаги. Сейчас перевожу раздел "Гаджеты", может с другими разделами будет проще.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 5:25 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Цитата:
Сейчас перевожу раздел "Гаджеты"

Самый нудный раздел.
Он тебе всю охоту отобьёт.
Ставь себе задачу и её решай. По ходу дела легче усваивать.
Но,... дело индивидуальное, кому-как-нравится.

Код:
1
2
3
4
5
 
Кто любит пиво,
Кто любит квас.
А я безумно обожаю контрабас.
 



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 6:23 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6609
Благодарил (а): 34 раз.
Поблагодарили: 230 раз.
Пункты репутации: 61
А на счет переводчиков - уже давно кто то изобрёл PROMT - так вот эта штука переводит и с немецкого и английского и ещё с нескольких европейских языков. Причём в справку прямо вводиться новый пункт (по правой кнопке) ПЕРЕВЕСТИ и переводит без всяких извращений с копировать- вставить, а уж если есть подключаемые словари, то вообще как родной русский. Так что всем не владеющим - рекомендую добыть и использовать :shock:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 6:49 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
У меня есть Промт. Он хуже переводит.
Брал текст и переводил Промтом и Сократом.
Сравнивал много раз.
Вывод - Сократ переводит лучше. Понятней.
Сколько лет они у меня оба есть - и всегда Сократ немного лучше.
Сократ тоже даёт кнопку "Перевести" в CHM-файлы.
---------
Скачивал огромные словари Лингво от АББУ - тоже, что и Промпт.
Так к Сократу и вернулся...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 8:37 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6609
Благодарил (а): 34 раз.
Поблагодарили: 230 раз.
Пункты репутации: 61
Цитата:
Сократ тоже даёт кнопку "Перевести" в CHM-файлы.


А у тебя какая версия Сократа? У меня 4.0, и не даёт кнопку перевести в CHM, только через буфер обмена.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 385 ]  На страницу 1, 2, 3, 4, 5 ... 26  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB