ТАЙМЕРЫ-СЧЕТЧИКИ

 

Большинство задач управления решаются в реальном времени. При этом микроконтроллер должен в определенные моменты времени выполнять определенные действия с объектом. Типовыми задачами такого плана считаются:

0 подсчет импульсов сигнала за фиксированный интервал времени;

0 формирование интервалов времени определенной длительности;

0 формирование периодических сигналов заданной частоты;

0 формирование широтно-модулированных сигналов;

0 формирование временных задержек;

0 измерение времени и др..

Любая из этих задач может быть выполнена программно, но в этом случае процессорное ядро вынуждено заниматься только подсчетом времени и все остальные задачи откладываются. Для разгрузки процессорного ядра от такой неэффективной работы микроконтроллеры снабжаются специальными схемами, получившими название таймеры/счетчики (Timer/Counter). Таймер/счетчик может быть использован для подсчета тактовых импульсов фиксированной частоты либо для подсчета любых внешних импульсных сигналов. Считается, что в первом случае устройство выполняет функции таймера, во втором - счетчика.

В современных микроконтроллерах, кроме простейших функций подсчета импульсов, на таймеры/счетчики возлагаются обычно дополнительные функции:

0 функция входа захвата IC (Input Capture),

0 функция выхода сравнения OC (Output Compare),

0 широтно-импульсной модуляции PWM (Pulse-Width Modulation )

В режиме захвата содержимое таймера/счетчика в момент времени, задаваемый каким либо внешним событием на входе захвата, запоминается в регистре данных и становится доступным для процессорного ядра. Одновременно формируется запрос на прерывание, сообщающий программе о готовности данных.

В режиме сравнения содержимое таймера/счетчика сравнивается с некоторым фиксированным числом, хранящемся в одном из регистров микроконтроллера. В момент равенства данных формируется сигнал на выходе захвата.

В режиме широтно-импульсной модуляции таймер/счетчик формирует последовательность импульсов определенной частоты, в которой длительность импульсов может быть изменена программно от 0 до периода последовательности.

Количество таймеров/счетчиков, интегрируемых на кристалл микроконтроллера, может быть различно. Например, микроконтроллер ATmega163 имеет три универсальных таймера/счетчика: два 8-битных (Timer/Counter0 и Timer/Counter2) и один 16-битный (Timer/Countert).

Для регулирования частоты входного сигнала все таймеры снабжаются предделителями (Prescaler). Таймер/счетчик 0 и таймер/счетчик 1 имеют общий предделитель, обеспечивающий изменение частоты на входе каждого счетчика в диапазоне от 1/8 до 1/1024 входной тактовой частоты СК (Clock).

Тактовый сигнал таймера/счетчика 2 по умолчанию равен частоте синхронизации СК. Программно его можно подключить к отдельному тактовому генератору. Для этого к определенным выводам микроконтроллера (TOSC1 и TOSC2) подключается кристалл резонатора. Генератор оптимизирован на частоту кристалла 32.768 кГц. Это позволяет использовать таймер/счетчик 2 в качестве часов реального времени RTC (Real Time Clock).