Комментарии 18
С ИК все довольно просто, а вот как быть с точно таким же RF пультом — пока окончательного решения не нашел.
0
Здесь у меня возник один нюанс, объяснение которого я не знаю. При пуске таймера сразу (само собой после обработки прерывания INT0) срабатывало прерывание по переполнению таймера.
а вы не забыли перед стартом таймера счетчик его обунлить
0
А чем вас IRremote не устроил? Себе недавно на нём «пульт» для SOLO 7c восстановил.
Хотя да у вас не arduino.
Хотя да у вас не arduino.
0
> Здесь у меня возник один нюанс, объяснение которого я не знаю. При пуске таймера сразу (само собой после обработки прерывания INT0) срабатывало прерывание по переполнению таймера. Как? Зачем?
У меня было точно так же, только на 16 атмеге. Счетчик точно обнуляется, но с первым же импульсом приходит и прерывание. В эмуляторе так же. Что за фигня?
У меня было точно так же, только на 16 атмеге. Счетчик точно обнуляется, но с первым же импульсом приходит и прерывание. В эмуляторе так же. Что за фигня?
0
Ответа пока не нашел.
0
Не пробовали смотреть значение счетчика сразу после первого прерывания по переполнению? Atmel Studio показывает все регистры контроллера, включая счетные. Если значение 0, то вот выдержка из даташита:
«In normal operation the Timer/Counter Overflow Flag (TOV0) will be set in the same timer clock cycle as the TCNT0 becomes zero.»
Если этому верить, то именно TCNT0 == 0 приводит к возникновению прерывания переполнения, а не переход TOP -> 0. Я на такое не натыкался, т.к. обычно использую COMP_interrupt (сравнение). Если хотите работать с переполнением, попробуйте поставить TCNT0 в 1 и посмотреть, сохранится ли это «лишнее» прерывание.
«In normal operation the Timer/Counter Overflow Flag (TOV0) will be set in the same timer clock cycle as the TCNT0 becomes zero.»
Если этому верить, то именно TCNT0 == 0 приводит к возникновению прерывания переполнения, а не переход TOP -> 0. Я на такое не натыкался, т.к. обычно использую COMP_interrupt (сравнение). Если хотите работать с переполнением, попробуйте поставить TCNT0 в 1 и посмотреть, сохранится ли это «лишнее» прерывание.
+1
А код где-нибудь на гитхабе выложен?
0
Хорошая статья) как-то адаптировал промышленные диодные часы под такие пульты, правда не RF а ИК-шные.
У всех подобных пультов один большой плюс: легко самоклейку наклеить со своим рисунком кнопок ;)
Но был один нюанс — от партии к партии первая буква HEX-кода команд «плавала»… Может мой поставщик производителей разных возил, не знаю. Я если честно не заморачивался — брал просто RGB-контроллеры, использовал только пульт (китайцы давали почти одинаковые цены на контроллер в сборе и пульт отдельно, видимо не понимали логики брать только пульт и считали такой заказ на тот момент эксклюзивным, не знаю...).
Кстати, может кому нужны «тушки» контроллеров — штук 20 лежит, за шоколадку могу выслать. Выкидывать жалко. Там мозг и полевики как-никак ))))
У всех подобных пультов один большой плюс: легко самоклейку наклеить со своим рисунком кнопок ;)
Но был один нюанс — от партии к партии первая буква HEX-кода команд «плавала»… Может мой поставщик производителей разных возил, не знаю. Я если честно не заморачивался — брал просто RGB-контроллеры, использовал только пульт (китайцы давали почти одинаковые цены на контроллер в сборе и пульт отдельно, видимо не понимали логики брать только пульт и считали такой заказ на тот момент эксклюзивным, не знаю...).
Кстати, может кому нужны «тушки» контроллеров — штук 20 лежит, за шоколадку могу выслать. Выкидывать жалко. Там мозг и полевики как-никак ))))
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Реализация ИК протокола NEC на ATmega