Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Связь проводная и бесп-ная, интерфейсы, протоколы » Помогите разобраться с протоколом.


Помогите разобраться с протоколом.

Сообщений 1 страница 7 из 7

1

Здравствуйте,подскажите как в баскоме разберать данные полученные по UART и также в другую сторону собирать и отпровлять..Протокол предоставил,вот его и надо из него выдерать данные и назад собирать и отправлять обратно.Как будет правельно это на баскоме сделать???

http://uploads.ru/t/G/Q/7/GQ7Yh.png

http://uploads.ru/t/l/j/7/lj7DR.png

Отредактировано Aleks8383 (2012-02-25 23:05:06)

0

2

1 программа для компьютера есть?
2 речь о микроконтроллере в блоке CT17?
3 лучше бы все было текстовом виде
4 приблизительно так:
- набиваешь все принятое в буфер и ждешь символа с кодом FDh
- вырезаешь данные между FEh,FEh и FDh, включая указанные
- определяешь чьи они по третьему байту
- отправляешь соответствующему адресату
- чистишь буфер
- снова принимаешь и ждешь FDh

0

3

1.Программ написано под это целая куча разных.Смысл весь в том чтобы использовать готовую программу для управления трансивером(кто не в курсе проще сказать радиостанцией)Но трансивер самодельный,а управляться будет с компа по этому протоколу.
2.В этом блоке не контроллер,там стоит rs232 соглавовывает трансивер  комп.Контроллер в нутри трансивера.Скоре всего думаю Атмега 8 будет.
3.В текстовом нет, только pdf.
4.Как организовать работу это всё понятно,меня интересует как выделить пришедший номер команды,подкоманды(если такая присутствует)и сами данные этой команды и разбить их в переменные чтобы можно было обработать в подпрограмме, ну и обратное действие из данных контроллера составить такойже код и отправить в комп.

0

4

а в чем конкрено проблема?

всё настроили
ждете стартовый байт
пришел
принимае нужное количество байт через inputbin
проверяем последний
если всё верно - расшифровываем

я делал такое

ex UA3YQJ

0

5

Александр Д. написал(а):

если всё верно - расшифровываем

я делал такое

Так принять и проверить это не проблема,вот именно как его "расшифровать" тоесть отделить номер команды подкоманду и сами данные этой команды.Нужно орезать адреса трансивера и контроллера и провеочное сообщение,а отделённым командам и подкомандам уже переходить в подпрограмму одработки команды.Раньше с этим не сталкивался ,и чегото не как не могу понять как это сделать.Если не сложно косочек программы где это происходит.

UA3RQN

Отредактировано Aleks8383 (2012-02-26 10:55:46)

0

6

ну, резать - это конкретно для вашей задачи надо делать
Вы вначале распишите словами алгоритм работы такого устройства, потом все нюансы
А потом и посмотрим, что да как делать

вот кусок кода приема:

Код:
...
Dim Data_1 As Byte , Data_2 As Byte , Data_3 As Byte , Data_4 As Byte
...
Print "Input your command... "


Start_prg:
  Led = 1                          ' Готовность к приему команд
  Print ">";

 Rx_data:
    Inputbin Data_1
 If Data_1 <> 111Then Goto Rx_data       ' Это не стартовый байт!

  Led = 0                          ' Приняли нужный байт - индицируем

 Inputbin Data_2
 If Data_2 > 7 Then Goto Start_prg ' Неверный номер реле!

 Inputbin Data_3
 If Data_3 > 2 Then Goto Start_prg ' Неверная команда!

 Inputbin Data_4
 Temp = 255 - Data_4               ' Проверка нашей "CRC"
 If Data_3 <> Temp Then Goto Start_prg       '"Error CRC!"

'''' Обработка принятых данных

0

7

Если в кратце то принемаем данные отделяем от них всю "шолуху"остовляем номер команды и подкоманды ну и само значение этой команды,далее смотрим за что отвечает та или иная команда и подкоманда и в соответствии с этим меняем ту переменную которая отвечает за действие этой команды. к примеру пришла команда на смену частоты мы и вносим в ту переменную значение той частоты которая пришла в команде и тд.

0


Вы здесь » Программирование ATMEL в BASCOM. » Связь проводная и бесп-ная, интерфейсы, протоколы » Помогите разобраться с протоколом.