roboforum.ru

Технический форум по робототехнике.

Передача информации с помощью ИК

Передача информации с помощью ИК

eugmai86 » 19 мар 2011, 20:36

Доброго времени суток.
Пытаюсь передавать 4 команды от одного контроллера к другому. МК 1 Трансивер Tiny 13, приемник tiny2313. Передать одну команду(внешнее прерывание в тини) не проблема, все работает. А вот никак не могу разобраться с алгоритмом и его реализацией для нескольких команд.
Для передатчика использую следующий алгоритм:
Если нажата кнопка 1
-передаю 5 раз 20 импульсов с паузой 260мкс после каждого импульса
Если нажата кнопка 2
-передаю 10 раз 20 импульсов с паузой 260мкс после каждого импульса
...
Если нажата кнопка 4
-передаю 20 раз 20 импульсов с паузой 260мкс после каждого импульса


Приемник должен гонять таймер с частотой самого длинного импульса, в моем случае 26мкс(время 1 импульса)*20(кол-во пульсаций)*20(раз передается импульс)+260мкс(задержка после каждой пачки импульсов)*20(пачек импульсов)=15,6 мс. Что равно 64 Гц (если я не ошибаюсь).

В момент когда нажата кнопка на передатчике, на приемнике срабатывает внешнее прерывание

interrupt [EXT_INT0] void ext_int0_isr(void)
{
TCNT0=0xF0; //запускаем таймер 64 Гц, время самого длинного импульса
TCCR0B=0x04;

}

И в этот момент мне нужно посчитать сколько же было послано пачек 5,10, 15, или 20. Как не знаю. Застрял. Помогите. Может быть есть стандартные библиотеки для МК на этот случай.

Re: Передача информации с помощью ИК

=DeaD= » 19 мар 2011, 21:23

Модератор "=DeaD=":Название поправлено.

Re: Передача информации с помощью ИК

AVRus » 20 мар 2011, 23:53

а зачем чтото гонять на таймере ? не легче просто считать сколько раз прерывание случалось ?

Re: Передача информации с помощью ИК

eugmai86 » 21 мар 2011, 00:24

Хм возможно, спасибо


cron
Rambler\'s Top100 Mail.ru counter