Цитата(hd44780 @ Jun 7 2007, 12:28)

Перебрал массу примеров, прошивок - ничего. Одни не работают вообще, другие дают неправильные коды (у многих клавиш получаются одинаковые коды).
Вникать не стал. Вкратце, по собственному опыту. Большинство примеров,
включая из многих application notes -- проблемные. По двум пунктам --
халявной реализацией приёмника и монопольным использованием
ЦПУ на момент декодирования посылки, что невозможно в практически
любом более-менее серьёзном проекте. Манчестерский код --
по сути относительная фазовая модуляция (поправьте если не прав),
и принимается соответствующим образом -- путём перемножения
задержанного на период несущей (и одновременно -- битовый интетвал) сигнала
с текущим его значением и суммирования результата. Одновременно
выполняется подстройка по фазе. Поскольку вход двоичный, то все операции сводятся
к XOR и подсчёту числа установленных битов в байте, на битовый интервал
считывается 8 значений -- ровно на байт. Подстройка фазы/частоты осуществляется
аналогичным образом (в теории положена петля костаса и др. ужосы, но практически
всё сводится к принятию решения о пропуске/вставке лишнего 1/8 бита на каждом
битовом интервале по результату перемножения последних 8-бит на 0x0f и подсчёту
сброшенных/установленных разрядов). В результате на каждом битовом интервале имеем значение
-4..+4 характерезующее принятый бит как 0..1 с некоторой вероятностью. Алгоритм
запускается с частотой 8*Fнесущая (высокая точность тут не нужна в силу особенности
(де)кодирования), считывает с порта очередное входное значение
и выдаёт декодированные байты, которые разбираются отдельным автоматом.
Цитата
Кто-нибудь глянет, м.б. у меня уже глаз на этот RC-5 замылился...
Разглядывать чужие баги -- неблагодарное занятие...