marss70 | Дата: Воскресенье, 23.06.2013, 14:46 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Здравствуйте, проблема в следующем- при использовании программного UART переменные типа Word передаются и принимаются на "УРА". При работе аппаратного UART двухбайтные числа на "перевариваются" приёмником. Код "передатчика": Код $regfile = "m8def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 40 $swstack = 16 $framesize = 32
Dim A As Word , B As Word , C As Word Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 A = 111 : B = 22 : C = 33 Do Printbin A ; B ; C Waitms 50 Loop End А вот код приёмника: $regfile = "attiny2313.dat" $crystal = 16000000 $baud = 9600 $hwstack = 40 $swstack = 16 $framesize = 32
Dim A As Word , B As Word , C As Word
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.0 Config Lcd = 16 * 2 Cursor Off Do Inputbin A , B , C Waitms 50 Cls Lcd A ; " " ; B ; " " ; C Waitms 50 Loop
End
Неужели придётся разбивать числа на два байта, передавать, а потом в приёмнике его "склевать"?
Сообщение отредактировал marss70 - Воскресенье, 23.06.2013, 14:58 |
|
| |
AlekS | Дата: Воскресенье, 23.06.2013, 15:35 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 247
Статус: Offline
| marss70, вариантов много.....передачи. Можно как переменные, в массиве (цикл Do Loop), разделитель при этом будет $0D, $0A. Потом в обратном порядке. Вообщем Ты прав, "склевать".
Сообщение отредактировал AlekS - Воскресенье, 23.06.2013, 15:38 |
|
| |
marss70 | Дата: Воскресенье, 23.06.2013, 21:30 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Не понятен ход мыслей разработчиков Bascoma. Зачем тогда есть возможность передавать переменные Word, если нет возможности нормально их принимать?
|
|
| |