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

 
 
> Опять RC-5, Не работает ни в какую...
hd44780
сообщение Jun 7 2007, 08:28
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Пытаюсь написать декодер RC-5.
ATMega32, 16 MHz (внешний кварц), датчик на PD2 (INT0), на этой же ноге pull-up 4.7 кил.
Питание от USB, FT232BM. Там еше LCD 20x4 висит.

Перебрал массу примеров, прошивок - ничего. Одни не работают вообще, другие дают неправильные коды (у многих клавиш получаются одинаковые коды).
Пульт четко RC-5 (по программе RC Explorer + схема WinLIRC на COM-порт).

В итоге написал свою реализацию - см. вложение.

ПРи работе выдает лог в USART. Анализируя логи, увидел, что вылетает на проверке мачестерского кода (значения). Почему-то считываются все единицы.

Кто-нибудь глянет, м.б. у меня уже глаз на этот RC-5 замылился...
Прикрепленные файлы
Прикрепленный файл  RC5testCVavr.zip ( 13.77 килобайт ) Кол-во скачиваний: 89
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kirill Frolov
сообщение Jun 14 2007, 20:05
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241



Цитата(hd44780 @ Jun 7 2007, 12:28) *
Перебрал массу примеров, прошивок - ничего. Одни не работают вообще, другие дают неправильные коды (у многих клавиш получаются одинаковые коды).


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

Цитата
Кто-нибудь глянет, м.б. у меня уже глаз на этот RC-5 замылился...


Разглядывать чужие баги -- неблагодарное занятие...


--------------------
[ZX]
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 02:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016