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

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

Отправлено Romario 23 апреля 2003 г. 12:17
В ответ на: вот таблица для кодера отправлено Romario 23 апреля 2003 г. 11:59


__far const u8_t
rmCORRECT[16] = { BIN8(00000000), // нет ошибки
BIN8(00000000), // ошибка в проверочных разрядах
BIN8(00000000), // ошибка в проверочных разрядах
BIN8(00000000), // неисправимая ошибка
BIN8(00000000), // ошибка в проверочных разрядах
BIN8(00000001), // ошибка в бите 0
BIN8(00000010), // ошибка в бите 1
BIN8(00010000), // ошибка в бите 4
BIN8(00000000), // ошибка в проверочных разрядах
BIN8(00000100), // ошибка в бите 2
BIN8(00001000), // ошибка в бите 3
BIN8(00100000), // ошибка в бите 5
BIN8(00000000), // неисправимая ошибка
BIN8(01000000), // ошибка в бите 6
BIN8(10000000), // ошибка в бите 7
BIN8(00000000) // неисправимая ошибка
};


__far const u8_t
rmCOLUMS[13] = {0,COL08,COL07,COL06,COL05,COL04,COL03,COL02,COL01,COL09,COL10,COL11,COL12};

начальное состояние при приеме каждого кодового слова
bit_cnt = 12;
rmFEC = 0;
rmByte = 0;

далее принимаем 12 битовое кодовое слово


while(bit_cnt) {
rmByte <<= 1;
if (приняли '1') {
rmByte |= 1;
rmFEC ^= rmCOLUMS[bit_cnt];
}
bit_cnt--;
}

byte = (u8_t)(rmByte ^ rmCORRECT[rmFEC]); // correct byte


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

Ответы



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

E-mail: info@telesys.ru