Подскажите как лучше поступить!
Есть atmega8 на int0 подключен tsop, соответственно задействован один таймер и прерывание на int0 для обработки сигнала.
Надо подключить еще 4 кнопки и отрабатывать их нажатие.
Повешать их отработку на прерывание срабатывающее к примеру на "насчитывание" таймером определенного значения?
или может повесить их на int1?
как корректнее все это отрабатывать?
TSOP лучше вешать не на INT0 или INT1, а на вход захвата TIMER1 - тогда декодирование RC5 получается элементарно легко. а кнопки, как правило, элементарно обрабатываются простым опросом, без всяких прерываний, т.е. в основном цикле. разве что у вас "пробуждение" микроконтроллера по нажатию кнопки или приему ИК-команды сделано - тогда ваш подход более верный...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
ARV писал(а):TSOP лучше вешать не на INT0 или INT1, а на вход захвата TIMER1 - тогда декодирование RC5 получается элементарно легко. а кнопки, как правило, элементарно обрабатываются простым опросом, без всяких прерываний, т.е. в основном цикле. разве что у вас "пробуждение" микроконтроллера по нажатию кнопки или приему ИК-команды сделано - тогда ваш подход более верный...
можно пояснить по поводу INT1, почему на него вешать лучше?
можно и одним таймером 0 обойтись когда происходит прерывание по int 0 или int1 в обработчике таймер обнуляеться а время посылки одного бита ик команды меньше чем время переполнения таймера я использовал внутренний генератор на 1 Мгц и делитель таймера на 1
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
я вообще tsop подключаю в первый раз. Вот взял по какой то ссылке вот этот исходник, мне на него основываться или есть алгоритмы получше?
на atmega8 он без проблем подойдет же?
если нужен весь код, то могу скинуть
несколько раз себя перепроверял, прерывания разрешены, выход из подпрограмм через RETI
все остальное работает замечательно а здесь прям засада какая-то
и ведь стопудова виной всему какая-то мелоч которую мои замученные мозги не хотят заметить
<b>UPD:</b> Всё разобрался, в настройке портов нужно было бит 1 (нога PB1 и соттветственно она же INT0) установить на вход, вот так:
Здравствуйте. Судя по этому коду, разрешаются прерывания по низкому уровню на INT0, который сидит, по схеме на общем через резистор и светодиод, а ожидаете команды низким уровнем, опять же по схеме, нажатием кнопки на INT1.
[quote="akl"]Здравствуйте. Судя по этому коду, разрешаются прерывания по низкому уровню на INT0, который сидит, по схеме на общем через резистор и светодиод, а ожидаете команды низким уровнем, опять же по схеме, нажатием кнопки на INT1.
[quote]
Мне кажется вы перепутали INT0 и PCINT0
прерывания по INT1 в 13ой тиньке нет вообще
При наличии отсутствия пропитанных шпал - это будет не трамвай а одно горе!
Здравствуйте!
Помогите пожалуйста кто знает, нужно одним нажатием на кнопку включить светодиод, а другим нажатием выключить, и так далее. Желательно в cvavr. Заранее спасибо!