Нужно сделать 2 программы в одном пике , кодировщик и раскодировшик
передатчик все время в слипе просыпаеться по приходу лог1 на вывод 1 и вывод 3 (2 команды передаем) 4 вывод пика выход кода на передатчик , 6 вывод пика либо к минусу подтянут либо к плюсу внешним резистором при подаче питания программа смотрит там 0 или 1 - так программа узнает кодером работать или декодером ,
приемник - 4 вывод вход кода радиоэфира от компаратора 1 и 3 выводы выход лог1 при приходе кода , код 16 битный + 2 бита сам код
есть исходники для 10ф200 брелок и исходник декодер для 629 пика
Протокол простой синхроимпульс 1.6мс говорит о начале посылки затем идут лог1 0.8мс и лог0 0.4мс , главное тут не допускать широких импульсов шире 1.6 мс ,
Приемник работает по такому принципу , он реагирует на событие порта неважно лог1 или лог0 пришол , произошёл перепад включаеться счетчик измеряем ширину импульса ,если 1.6мс программа соображает ок пришол синхроимпульс и запускает счетчик второй перепад на порте допустим пришла лог1 сравниваем с числом 16 битным если первая лог1 совпала ждем второй импульс допустим пришёл 0 (0.4мс) и так поочереди сравниваем если ошибка то программа возвращается в ожидание синхроимпульса ,
И еще надо сделать процентные погрешности импульсы через радиоканал передаются с искажениями тоесть может прийти не 0.4 а например 0.5 мс
333_super.asm
br_radio_2x_204.asm