Таймер/счетчик ТО — это универсальный восьмиразрядный счетный модуль с двумя независимыми модулями совпадения и с поддержкой ШИМ (PWM). Он позволяет формировать заданные промежутки времени (для работы в режиме реального времени). А также может служить генератором сигналов.
Для вызова внешних прерываний используются входы INTO, INT1 или любой из входов PCINT7—0. Если прерывания разрешены, то они будут вызваны, даже если выводы INTO, INT1 и PCINT7—0 сконфигурированы как выходы.
Эта особенность обеспечивает возможность генерировать прерывание программным путем. Прерывание PCI1 — это прерывание по изменению сигнала на любом из выводов PCINT7—8. Прерывание PCI0 — это прерывание по изменению любого сигнала PCINT7...0. Причем как для прерывания PCI1, так и для прерывания РСЮ можно произвольно исключить из работы любой из закрепленных за ним входов.
Управляющие регистры PCMSK1 и PCMSK0 определяют, какие из входов будут вызывать соответствующее прерывание. Прерывание по изменению на контактах PCINT7—0 работает асинхронным образом. Поэтому данный вид прерываний может использоваться для пробуждения изо всех спящих режимов, кроме режима Idle.
Модуль 16-разрядного таймера/счетчика позволяет с высокой точностью формировать временные интервалы (режим реального времени), генерацию периодических сигналов, импульсы заданной длительности. Он имеет следующие основные особенности:
- полная 16-разрядная структура (то есть поддерживает 16-разрядный ШИМ);
- два независимых модуля совпадения;
В прежние времена очень популярны среди радиолюбителей были различные автоматы световых эффектов. Сейчас этим не удивить, и совсем недорого можно купить готовую мигающую световую гирлянду. Однако, как пример для программирования, такая задача вполне подойдет. Итак, разрабатываем «Бегущие огни».
Создадим программу с
«Создать устройство с одним светодиодом и одной управляющей кнопкой. Кнопка должна включать и выключать мигание светодиода. Пока кнопка отпущена, светодиод не должен светиться. Все время, пока кнопка нажата, светодиод должен мигать с частотой 5 Гц».