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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Прием/передача данных по UART


Прием/передача данных по UART

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

1

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

Например по нажатию на кнопку (в МК) нужно что бы передалось значение «A1 A2 00» от МК в компьютер   в ответ получить «01 BB B3» из компьютера в МК, если прило именно «01 BB B3» то на МК должен загореться светодиод

0

2

Посмотрите здесь

0

3

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

01 BB B3

За ссылку спасибо , но все равно много чего не до понял

Вот наброски того что хочу , но это не работает

$regfile = "m8def.dat"
$crystal = 4000000
$baud = 9600
Config Pind.2 = Input'кнопка
Config Pind.6 = Output'светодиод
Config Int0 = Falling
Dim A As 'переменная в которую должно попасть значение от Компьютера (каким должен быть тип переменной?) 
On Int0 Stopbutton
Wtime = 255
Enable Interrupts
Enable Int0
Do
  Set Portd.2
  Waitms Wtime
  Reset Portd.2
  Waitms Wtime
Loop
Stopbutton:'при нажатии на кнопку от МК в ПК отправляется команда
Printbin &HA1 ; &HA2 ; &H00
Waitms 5
Input A'как правильно принять команду от ПК?
If A = "01 BB B3" Then 'как правильно сравнить что пришло с тем что есть?
Pind.6 = 1
Else
Pind.6 = 0
End If
Return

End

0

4

Надо смотреть, что отправляется из компьютера. Принимать нужно в переменную того типа, что отправлено. Если отправлено "01" то принмать в текст, а если 01, то в байт.

0

5

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

01 BB B3

принять нужно 01 BB B3 а не 01 , да логично что переменная байт но ведь он сохранит в переменную только 01 а нужно как то полностью сохранить 01 BB B3 и сравнить с тем чем нужно

0

6

Ну создайте массив и добавляйте в него по 1 байту или используйте INPUTBIN на приём не 1 байта, а несколько.
Вся инфа есть в хелпе программы, почему не читаете?

0

7

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

принять нужно 01 BB B3 а не 01 , да логично что переменная байт но ведь он сохранит в переменную только 01 а нужно как то полностью сохранить 01 BB B3 и сравнить с тем чем нужно

Я и говорю, как вы отправляете? Если вы отправляете из компьютера три байта с терминатором в виде конца строки то принимайте байты.
INPUT A,B,C Или в массив, как RDW предложил. Если в конце нет "Энтер_а" то INPUTBIN.

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

0

8

Всем привет.  может не совсем по теме, но если кому не трудно кинте пример связи двух МК по SPI.

0

9

SHIFTIN
SHIFTOUT

0

10

)упс а ларчик просто открывался. )))

0

11

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

Вот наброски того что хочу , но это не работает

Отправил в  ЛС

0

12

Всем привет! Боюсь показаться не доходчивым, но

SHIFTIN  SHIFTOUT

не совсем подходи.
Если кому не трудно разжуйте
http://sf.uploads.ru/t/Zn5pF.jpg
И если можно по подробней
http://sf.uploads.ru/t/CDo79.jpg

0

13

Смотрите команды/функции.

config SPI,  SPIINIT,  SPIOUT,  SPIIN

0

14

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

не совсем подходи.
Если кому не трудно разжуйте

Вы хоть скажите, что хотите получить в итоге?

0

15

sasha_1973


поГуглил и прмерно наткнулся шас разжовываю.
SPI Bascom
примерно так. Один МК SL лопатит основную программу на два канала синусоидальный шим по очерёдно от минимума до максимума и обратно потом следующие плечё. а второй МК MS взависимости от тех или иных параметров задаёт SL несущую частоту. Ну как-то так)

0

16

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

Один МК SL лопатит основную программу на два канала синусоидальный шим по очерёдно от минимума до максимума и обратно потом следующие плечё. а второй МК MS взависимости от тех или иных параметров задаёт SL несущую частоту. Ну как-то так)

2 МК по SPI - здесь

Синусоида - здесь

Отредактировано sasha_1973 (2014-06-18 09:08:34)

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Прием/передача данных по UART