toweroff 0 16 мая, 2020 Опубликовано 16 мая, 2020 · Жалоба Как вариант, использовать 9 бит, для первого байта посылки выставлять его Упд. Извините, пропустил... Уже так и есть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 16 мая, 2020 Опубликовано 16 мая, 2020 · Жалоба 2 hours ago, Arlleex said: А у ТС с памятью напряг (с ПЗУ, а учитывая это, предполагаю, с ОЗУ еще хуже дела). Народ, какой буфер? Это 8051-ый - у меня от силы 500 байт ПЗУ, да пара байт ОЗУ на это дело дело осталось. Да и то в стеке. Наверное, не буду много придумывать - первый байт 0x80, как идентификатор начала пакета, да и все. А остальные байты буду в 7 бит ограничивать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 16 мая, 2020 Опубликовано 16 мая, 2020 · Жалоба 24 минуты назад, syoma сказал: Народ, какой буфер? Это 8051-ый - у меня от силы 500 байт ПЗУ, да пара байт ОЗУ на это дело дело осталось. Да и то в стеке. Неужто программа из десятка строк не влезет в 500 байт??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 16 мая, 2020 Опубликовано 16 мая, 2020 · Жалоба 2 hours ago, jcxz said: Неужто программа из десятка строк не влезет в 500 байт??? Надеюсь, что влезет, конечно. Но десятком строк точно не ограничится - пока полазил по коду, оказалось, что не все переменные так легко достать. Это тоже надо будет переделывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 16 мая, 2020 Опубликовано 16 мая, 2020 · Жалоба Уж всяко в 500 байтов можно засунуть обработчик запроса чтения памяти с произвольного адреса произвольной длины и передачу ответа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 16 мая, 2020 Опубликовано 16 мая, 2020 · Жалоба для передачи 10 байт = 80 бит, без всяких протоколов можно 6 старших бит отвести под "адрес", 2 младших под данные и с диким оверхэдом по количеству передаваемых данных (в 4 раза) слать по два бита в байте, но зато каждый отдельный байт получается вполне "самодостаточным" без каких-либо протоколов. для передачи массива до 16 байт: for (char i = 0; i < 16*4; i++) uart_send((i<<2) | ((data[i>>4]>>((i<<1)&6)) & 3)); для приёма data[rxbyte>>4] = data[rxbyte>>4] & (~(3 << ((rxbyte>>1)&6))) | ((rxbyte&3) << ((rxbyte>>1)&6)); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 30 16 мая, 2020 Опубликовано 16 мая, 2020 · Жалоба Можно глянуть на бинарный протокол обмена GPS-приёмников Trimble - TSIP: самое оно для 8051 по требуемым ресурсам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 17 мая, 2020 Опубликовано 17 мая, 2020 · Жалоба А что, HDLC уже не канает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться