Таймеры в Arduino Uno

Favour
Offline
Зарегистрирован: 11.07.2016

Работаю с Arduino недавно и в связи с этим возник вопрос. 

Мне нужно подавать с Arduino Uno сигнал (500мс есть, 500мс нет сигнала). То есть программа должна каждые пол секунды менять состояние есть/нет сигнал. Узнал что в arduino есть 3 таймера и решил их использовать для этого. Timer0 используется для нужд millis() и т.д. Как я понял можно использовать таймеры 1 и 2. Но вот как это все реализовать найти не могу. 

Может кто подробно расписать про ISR() Какие векторы принимает и где их можно посмотреть. (К примеру чем отличаются (TIMER1_COMPA_vect и TIMER1_OVF_vect)
Для чего нужны регистры TCCR1A TCCR1B TIMSK1 OCR1A и какие еще бывают.
Вообщем полностью раскрыть тему прерываний основанных на переполнении таймера. (Возможно материал есть на англоязычных сайтах, но увы уровень владения не позволяет )

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

В дополнение к сказанному коллегой, пара официальных ссылок:

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