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

- Вложения
-
- Макет.zip
- Схема в протеусе
- (13.5 КБ) 183 скачивания
-
- ATtiny45 - timer-counter.zip
- Файлы проектов для CVAVR
- (83.74 КБ) 217 скачиваний
-
- new_lib.zip
- Новые библиотеки, хотелось бы чтобы они заработали
- (3.75 КБ) 185 скачиваний
-
- bad_lib.zip
- Первые библиотеки, прием не уверенный, но присутствует
- (3.11 КБ) 198 скачиваний


