Таймеры в Arduino Uno
- Войдите на сайт для отправки комментариев
Работаю с Arduino недавно и в связи с этим возник вопрос.
Мне нужно подавать с Arduino Uno сигнал (500мс есть, 500мс нет сигнала). То есть программа должна каждые пол секунды менять состояние есть/нет сигнал. Узнал что в arduino есть 3 таймера и решил их использовать для этого. Timer0 используется для нужд millis() и т.д. Как я понял можно использовать таймеры 1 и 2. Но вот как это все реализовать найти не могу.
Может кто подробно расписать про ISR() Какие векторы принимает и где их можно посмотреть. (К примеру чем отличаются (TIMER1_COMPA_vect и TIMER1_OVF_vect)
Для чего нужны регистры TCCR1A TCCR1B TIMSK1 OCR1A и какие еще бывают.
Вообщем полностью раскрыть тему прерываний основанных на переполнении таймера. (Возможно материал есть на англоязычных сайтах, но увы уровень владения не позволяет )
http://easyelectronics.ru/avr-uchebnyj-kurs-tajmery.html
http://samou4ka.net/page/tajmer-schetchik-mikrokontrollerov-avr
http://chipenable.ru/index.php/programming-avr/item/171-avr-timer-t0-ch1...
В дополнение к сказанному коллегой, пара официальных ссылок:
http://www.atmel.com/Images/Atmel-2505-Setup-and-Use-of-AVR-Timers_ApplicationNote_AVR130.pdf
http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
По первой общие идеи и приёмы, а по второй - полное описание именно того, что на Uno