В качестве демонстрационного образца мне нужно собрать дымовой извещатель с передачей сработки на частоте 433МГц хотя бы на расстояние в 1 метр. Извещатель беру готовый, к нему доделываю схему передатчика и делаю схему приемника. Видел прошивку с манчестерским кодом для атмеги8 в авр студио, но пользуюсь кодвиженом и переписать его под CVAVR на тини45 не получилось. Сначала сам написал весьма топорные библиотеки, используя просто временные задержки между опросами входного пина. Передача медленная (100 мс на 1 бит), на небольшом расстоянии не очень уверенно, но работало (будем считать, что просто проверил работоспособность железа)
Потом по мотивам статьи в инете (http://radiolaba.ru/microcotrollers/podklyuchenie-radiomoduley-k-mikrokontrolleru.html) переписал библиотеки с использованием внешнего прерывания и таймера. Лог. "1" кодировал как 500 мкс высокого уровня напряжения + 250 мкс низкого уровня, а лог. "0" - 250 мкс высокого уровня + 500 мкс низкого уровня. Структура пакета: байт идентификатора + байт данных (посылается несколько раз для надежности) + байт контрольной суммы. Если соединить контроллеры проводом, то передача работает. А вот через радиоканал нет. Прикладываю все что у меня есть. Подскажите в чем может быть проблема и что я не учитываю. В статье на 50 метров стреляют. Код библиотек постарался максимально прокомментировать
Спойлер
