Прерывания по таймеру

Использование таймера в Arduino.

Разберемся что такое таймер в Ардуино.

Таймером называется счетчик, который производит счет с некоторой частотой, получаемой из процессорных 16 МГц. Можно произвести конфигурацию делителя частоты для получения нужного режима счета. Также можно настроить счетчик для генерации прерываний  при достижении заданного значения.

Таймер и прерывание по таймеру позволяет выполнять прерывание один раз в миллисекунду. В Ардуино имеется 3 таймера – Timer0, Timer1 и Timer2. Timer0 используется для генерации прерываний один раз в миллисекунду, при этом происходит обновление счетчика, который передается в функцию millis ().

  • Tаймер 0 (Системное время, ШИМ 5 and 6)
    Используется для хранения счетчика времени работы программы. Функция millis() возвращает число миллисекунд с момента запуска программы, используя ISR глобального приращения таймера 0. Таймер 0 также используется для реализации ШИМ на выводах 5 и 6.

  • Tаймер 1 (ШИМ 9 и 10)
    Используется для реализации ШИМ для цифровых выводах 9 и 10.

  • Tаймер 2 (ШИМ 3 и 11)
    Используется для управления выходами ШИМ для цифровых выводов 3 и 11.

Хотя все таймеры используются, только Tаймер 0 имеет назначенную таймеру ISR. Это означает, что мы можем захватить Таймер 1 и/или Таймер2 под свои нужды. Однако в результате вы не сможете использовать ШИМ на некоторых портах ввода-вывода.