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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Соединение двух МК по UART и пересылка данных


Соединение двух МК по UART и пересылка данных

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

1

Доброго времени суток, коллеги!

Ситуация следующая, имеется некий девайс ТЫК, от которого есть возможность принимать данные по UART (TTL уровни).

Для того, чтоб девайс передал данные - необходимо послать ему запрос 0xAA (в hex), в ответ он присылает  блок информации размером 15 байт.
запрос делаю следующим образом:

КОД

Chr(170) применил как раз для инициализации отправки данных с девайса (в HEX это 0xAA)/

Вопрос теперь такой, все 15 байт отправляются сразу в UART, а как их от туда считывать?

Смысл такой, что необходимо принять данные с девайса, обработать их и использовать в дальнейшем.

Подскажите, как можно принять 15 байт по UART и запихать их в переменную Otvet?!

конкретно про передачу данных из девайса сказано

ТЫК

0

2

конкретно меня, сейчас интересует как получить с него значения активной и реактивной мощностей

0

3

Здесь смотрели?

Как по мне, так это лучшее описание работы с USART в Bascom  -  перейти

Я бы сделал приём ответа в буфер на прерывании

Буфер разложен overlay-ем на готовые значения

например так
или так


Подняли флаг, что всё готово, реагируете согласно Вашего алгоритма.

Вот собственно и всё.

Отредактировано sasha_1973 (2014-11-30 15:31:06)

0

4

Если точно знаете что 15 байт, и после запроса ждёте ответ. то почему бы не попробовать просто

Код:
Inputbin U , Io,hi,Cn,sS,P,Q,COS_,F '  сумма всех байт равна 15

Ну и на всякий случай таймаут включить.

0

5

kip написал(а):

Если точно знаете что 15 байт  ..... включить.

А вот это уже интереснее. Завтра буду на работе, обязательно попробую!
Спасибо за подсказки!

0

6

спасибо огромное! теперь все получилось!
помогло inputbin, а чтоб не парится с байтами где по два а где по одному я назначил для переменных следующие типы

Dim U As Word ' 2 Байта
Dim Io As Word ' 2 Байта
Dim Hi As Word ' 2 Байта
Dim Cn As Byte ' 1 Байт
Dim Ss As Word ' 2 Байта
Dim P As Word ' 2 Байта
Dim Q As Word ' 2 Байта
Dim Cos_ As Byte ' 1 Байт
Dim F As Byte ' 1 Байт

и все заработало!!!

0

7

:cool:

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Соединение двух МК по UART и пересылка данных