Что я делаю в приемнике. Настраиваю таймер на 36кГц. Включаю прерывание таймера по совпадению(настройки таймера такие же как на пульте). Включаю прерывание на INT0 при изменении уровня. Когда уровень на INT0 падает запускаю таймер и увеличиваю переменную с количеством импульсов, когда срабатывает прерывание таймера. Когда уровень на INT0 снова увеличивается, останавливаю таймер и смотрю сколько насчиталось импульсов. Дальше определяю что пришло(стартовый пакет, ноль или единица)
Собственно в чем проблема. На приемнике не получается точно посчитать кол-во импульсов в пакете. Оно постоянно получается с какой-то погрешностью. При передаче 30 импульсов с пульта на приемнике приходится писать +-10 импульсов. С чем это моет быть связано? Или может у меня не правильный алгоритм?
- Вложения
-
- 1.png
- (101.58 КБ) 809 скачиваний


