Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.10.2009, 00:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
Наверно ты про это забыл, надо указать какой к какому COM порту приконектиться и на какой скорости он будет работать...
Может сдвинется с мертвой точки дело.
|
|
|
|
09.10.2009, 15:58
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
Порт я сконфигурировал правильно,
я думаю что элемент сом не понимает нех данных, наверно ему нужны строковые данные.
|
|
|
|
09.10.2009, 18:34
|
|
Частый гость
Регистрация: 22.04.2007
Сообщений: 40
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 4 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
порт действительно не сконфигурирован это раз,
неправильно производите запись в элемент "текстовое поле ввода"
попробуйте поработать над моим вложением. К сожалению полноценного СОМ порта не имею... сейчас проверить не на чем
|
|
|
|
09.10.2009, 19:08
|
|
Прохожий
Регистрация: 07.09.2009
Сообщений: 2
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
надо вроде так
|
|
|
|
09.10.2009, 20:12
|
|
Прописка
Регистрация: 23.01.2008
Сообщений: 102
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 19 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
Сообщение от dosikus
|
IMHO - лучше осваивай PureBasic , пользы на порядок больше .
|
Согласен.
HiAsm вещь хорошая, но PureBasic во много раз лучше и функциональней!
|
|
|
|
09.10.2009, 23:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
Сообщение от russo_turisto
|
Порт я сконфигурировал правильно,
я думаю что элемент сом не понимает нех данных, наверно ему нужны строковые данные
|
компоненту COM в Hiasm надо задать номер порта и скорость работы, пробовал, с вашей программой виртуального COM, спокойно передал пару байт через компонент.
И еще как выше уже писал, посмотрите пример применяющий COM копонент
C:\Program Files\HiAsm\elements\delphi\example\System\AT.sha
Там все ясно...
Последний раз редактировалось Saadov; 09.10.2009 в 23:51.
|
|
|
|
10.10.2009, 12:08
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
Спасибо за ответы, с нех данными элемент сом не работает, когда посылаю строками данные они тогда они отображаются.
Надо переделать в WinAvr исходник прошивки, чтобы нех конвертировал в строки. Например если темпиратура 1град передаётся 0х00 0х0А, если 10град то 0х00 0х64 (в десятичной системе 100). Соответственно при 1град надо передать '1,0' а при 10 град надо передать '10,0'
Получается нужно заменить формат передачи данных, как пока не знаю. Буду думать.
Если подскажете, то заранее благодарен.
|
|
|
|
10.10.2009, 14:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
Сообщение от russo_turisto
|
Получается нужно заменить формат передачи данных, как пока не знаю. Буду думать.
Если подскажете, то заранее благодарен
|
почитай help своего компилятора по разделу stdlib
|
|
|
|
10.10.2009, 14:57
|
|
Прописка
Регистрация: 23.01.2008
Сообщений: 102
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 19 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
Во изврат в HiAsm'е ![Шокирован](images/smilies/icon_eek.gif)
Для COM порта нет различий между системами исчисления, т. к. он работает с байтами.
Ине вот интересно чтобы ты делал, если бы отсутствували исходники для контроллера?
Вот прога на PureBasic
Код:
|
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Combo_PortName
#Combo_PortBaud
#Text_PortState
#String_Byte_1
#String_Byte_2
EndEnumeration
Procedure NewCom(Port.s, Baud) ; В этой процедуре открывается порт
If IsSerialPort(1) ; Порт уже открыт прогой
CloseSerialPort(1) ; Закрываем его
Delay(100)
EndIf
; Открываем порт
If OpenSerialPort(1, Port, Baud, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 256, 256)›0
SetGadgetText(#Text_PortState, "Порт успешно октрыт")
SetGadgetColor(#Text_PortState, #PB_Gadget_FrontColor, RGB(31, 94, 84) )
Else
SetGadgetText(#Text_PortState, "Ошибка при открытии порта")
SetGadgetColor(#Text_PortState, #PB_Gadget_FrontColor, RGB(255, 0, 0) )
EndIf
EndProcedure
Procedure InCOM_Thread(*v) ; Эта процедура работает в параллельном потоке и каждые 100 мс опрашивает порт
Static ByteNumber.c
Protected Byte.c
Repeat
If IsSerialPort(1) ; Пот открыт
If AvailableSerialPortInput(1) ; Еслть ноые данные
ReadSerialPortData(1, @Byte, 1) ; Получаем их
If ByteNumber=0 ; Это первый байт
ByteNumber=1
SetGadgetText(#String_Byte_1, Str(Byte))
Else ; Это второй байт
ByteNumber=0
SetGadgetText(#String_Byte_2, Str(Byte))
EndIf
EndIf
EndIf
Delay(100)
ForEver
EndProcedure
; Создание окна и его компонентов
Procedure Open_Window_0()
If OpenWindow(#Window_0, 0, 0, 300, 130, "ComTermo", #PB_Window_MinimizeGadget | #PB_Window_Invisible | #PB_Window_ScreenCentered )
TextGadget(#PB_Any, 10, 20, 35, 15, "Порт")
ComboBoxGadget(#Combo_PortName, 45, 15, 75, 20)
For i=1 To 10
AddGadgetItem(#Combo_PortName,-1,"COM"+Str(i))
Next i
SetGadgetState(#Combo_PortName,0)
TextGadget(#PB_Any, 140, 20, 55, 15, "Скорость")
ComboBoxGadget(#Combo_PortBaud, 200, 15, 80, 20)
AddGadgetItem(#Combo_PortBaud,-1,"75")
AddGadgetItem(#Combo_PortBaud,-1,"110")
AddGadgetItem(#Combo_PortBaud,-1,"134")
AddGadgetItem(#Combo_PortBaud,-1,"150")
AddGadgetItem(#Combo_PortBaud,-1,"300")
AddGadgetItem(#Combo_PortBaud,-1,"600")
AddGadgetItem(#Combo_PortBaud,-1,"1200")
AddGadgetItem(#Combo_PortBaud,-1,"1800")
AddGadgetItem(#Combo_PortBaud,-1,"2400")
AddGadgetItem(#Combo_PortBaud,-1,"4800")
AddGadgetItem(#Combo_PortBaud,-1,"7200")
AddGadgetItem(#Combo_PortBaud,-1,"9600")
AddGadgetItem(#Combo_PortBaud,-1,"14400")
AddGadgetItem(#Combo_PortBaud,-1,"19200")
AddGadgetItem(#Combo_PortBaud,-1,"38400")
AddGadgetItem(#Combo_PortBaud,-1,"57600")
AddGadgetItem(#Combo_PortBaud,-1,"115200")
AddGadgetItem(#Combo_PortBaud,-1,"128000")
SetGadgetState(#Combo_PortBaud,11)
TextGadget(#Text_PortState, 10, 45, 280, 15, "", #PB_Text_Center)
TextGadget(#PB_Any, 10, 80, 75, 15, "Первый байт")
StringGadget(#String_Byte_1, 95, 75, 40, 20, "")
TextGadget(#PB_Any, 10, 105, 70, 15, "Второй байт")
StringGadget(#String_Byte_2, 95, 100, 40, 20, "")
HideWindow(#Window_0,0)
EndIf
EndProcedure
Open_Window_0() ; Собственно создание окна
NewCom(GetGadgetText(#Combo_PortName), Val(GetGadgetText(#Combo_PortBaud))) ; Открытие порта
CreateThread(@InCOM_Thread(), 0) ; Запуск процедуры а параллельном потоке
Repeat ; Главный цикл проги Repeat - Until
Event=WaitWindowEvent() ; Идентификатор события в программе
If Event=#PB_Event_Gadget ; Событие в гаждете
Gadget=EventGadget() ; Идентификатор гаджета, в котором произошло событие
If Gadget=#Combo_PortName Or #Combo_PortBaud ; Событие в выпадающем списке
If EventType()=1 ; Спосок закрылся
NewCom(GetGadgetText(#Combo_PortName), Val(GetGadgetText(#Combo_PortBaud))) ; Открытие порта
EndIf
EndIf
EndIf
Until Event=#PB_Event_CloseWindow ; Событие закрытия окна |
Она принимает 2 байта и оиображает их в десятичном формате (0...255).
Если нужно отобразить в ASCII формате, то нужно функции Str в процедуре InCOM_Thread заменить на Chr. Для отображения в HEX формате, нужно использоват функцию Hex
|
|
|
|
10.10.2009, 23:12
|
|
Частый гость
Регистрация: 22.04.2007
Сообщений: 40
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 4 сообщении(ях)
|
Re: Помогите по HiAsm, задолбался уже
russo_turisto
а почему так настойчиво пытаетесь получить текст, если посылаете в порт не текст? ![Улыбка](images/smilies/icon_smile.gif) На мой взгляд ничего не надо в девайсе менять. Надо просто правильно составить схему. Я тоже сначала немало потыкался по примерам, прежде чем заработали первые проги.
я вот примерчик привел, как по разному вводятся строки. А ниже дан конвертор , который как раз и позволяет конвертировать данный в любой последовательности
Последний раз редактировалось -Vladimir-; 10.10.2009 в 23:35.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:46.
|
|