Большинство задач управления, которые реализуются с помощью МК, требуют исполнения их в реальном времени.
Возлагать функции формирования управления в реальном масштабе времени только на центральный процессор неэффективно, так как это занимает ресурсы, необходимые для расчетных процедур. Поэтому в большинстве современных МК используется аппаратная поддержка работы в реальном времени с использованием таймера (таймеров).
Модули таймеров служат для приема информации о времени наступления тех или иных событий от внешних датчиков событий, а также для формирования управляющих воздействий во времени.
Модуль таймера 8-разрядного МК представляет собой 8-ми или 16-разрядный счетчик со схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера в режиме счетчика внешних событий, поэтому его часто называют таймером/счетчиком.
В памяти МК 16-разрядный счетчик отображается двумя регистрами: TH- старший байт счетчика, ТL — младший байт. Регистры доступны для чтения и для записи. Направление счета — только прямое, то есть при поступлении входных импульсов содержимое счетчика инкрементируется.В зависимости от настройки счетчик может использовать один из источников входных сигналов:
• импульсную последовательность с выхода управляемого делителя частоты ;
• сигналы внешних событий, поступающие на вход ТОСК1 контроллера. В первом случае говорят, что счетчик работает в режиме таймера, во втором— в режиме счетчика событий.
При переполнении счетчика устанавливается в «единицу» триггер переполнения ТF, который генерирует запрос на прерывание, если прерывания от таймера разрешены. Пуск и останов таймера могут осуществляться только под управлением программы. Программным способом можно также установить старший и младший биты счетчика в произвольное состояние или прочитать текущий код счетчика.
Рассмотренный «классический» модуль таймера/счетчика широко применяется в различных моделях относительно простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками «классического» таймера/счетчика являются:
• потери времени на выполнение команд пуска и останова таймера, приводящие к появлению ошибки при измерении временных интервалов и ограничивающие минимальную длительность измеряемых интервалов времени единицами мс;
сложности при формировании временных интервалов (меток времени), отличных от периода полного коэффициента счета
• невозможность одновременного обслуживания (измерения или формирования импульсного сигнала) сразу нескольких каналов.
Никакие усовершенствования не устраняют главного недостатка модуля «классического» таймера — одноканального режима работы. Этот недостаток можно устранить за счет введения дополнительных аппаратных средств входного захвата и выходного сравнения. Такой подход используется, в частности, в МК компании Мо1ого1а
Следующим этапом развития модулей подсистемы реального времени МК стали модули процессоров событий.