-= Александр =- » 11 янв 2006, 21:08
Отправляется 1 байт. Это так всегда, потому как больше в ком-порт не пролезет. Я делаю так: есть формат посылки: заголовок, количество байтов, сами байты, стоп-байт. Иногда перед стопом еще и CRC идет, но это когда девайс рядом с источкиком помех находится. Все просто: пришла посылка, мы ее в массив положили и далше смотрим заголовок и соответствующим образом разбираем. Есть вариант сложнее, но надежнее. Каждый байт режется на пополам и раскладывается в 2 байта (4 старших сдвигаются вправо если это данные, 4 младших влево если команда) - это позволяет исключить перепутывания команд и данных. Третий вариант еще круче: эти полубайты клеются хитрым образом, так чтобы старшие 4 бита - это команда, а младшие - данные. Но тогда придется ограничиваться 16-ю командами, т.к. вся команда должна вместиться в 4 бита и быть у двух таких байтов одинаковой.
В ICC можно отправлять функцией putchar или puts без задержки, он сам контролирует состояния порта и по-очереди все туда складывает...
Последний раз редактировалось
-= Александр =- 11 янв 2006, 21:15, всего редактировалось 1 раз.