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. Как не знаю. Застрял. Помогите. Может быть есть стандартные библиотеки для МК на этот случай.
Аватара пользователя
eugmai86
 
Сообщения: 22
Зарегистрирован: 10 фев 2011, 22:35

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

Сообщение =DeaD= » 19 мар 2011, 21:23

Модератор "=DeaD=":Название поправлено.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение AVRus » 20 мар 2011, 23:53

а зачем чтото гонять на таймере ? не легче просто считать сколько раз прерывание случалось ?
AVRus
 
Сообщения: 41
Зарегистрирован: 03 фев 2011, 03:23
Откуда: Новгород

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

Сообщение eugmai86 » 21 мар 2011, 00:24

Хм возможно, спасибо
Аватара пользователя
eugmai86
 
Сообщения: 22
Зарегистрирован: 10 фев 2011, 22:35


Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 21