Ответ: я делал так с rs-232
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено dm37 14 января 2004 г. 13:07
В ответ на: Посоветуйте, пожалуйста, протокол обмена (+) отправлено 220V 14 января 2004 г. 07:30

например байт 0b10011100 делился на два байта и кодируется как манчестерский
1-й байт - 0b10 01 01 10
2-й байт - 0b10 10 01 01
и передовал их как байты для rs-232 (включая стартовый и стоповый).

потом переделал на другой способ (не помню как называется):
void CodingByte(unsigned char byte)
{
unsigned char Z;
unsigned char i;
unsigned char count;

count=0; // сбрасываем счетчик переходов 0/1
CodingBit=0;
Z=byte^(byte<<1); // получаем число переходов 0/1
for(i=0;i<8;i++) // считаем число переходов 0/1
{
if (Z & (1<<0)) // если переход,
count++; // то увеличиваем счетчик переходов
Z=Z>>1; // проеверяем следующий бит
}
if(count < 4) // если количество переходов меньше 4,
{
byte=byte^0xAA; // то кодируем байт
CodingBit=1;
}
RadioPutc(byte); // передача байта
}
также передается по обычному UART.
Все работает.
Также смотри почту.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru