Микропроцессоры и микроконтроллеры

 
 
 
«Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.»
Martin Golding
Русский | Українська


Микропроцессоры и микроконтроллеры :: Структура и программирование однокристальных микроконтроллеров :: 5.3 Настройка таймеров для реализации интервалов времени

5.3 Настройка таймеров для реализации интервалов времени

Основной принцип использования таймеров – контролировать только моменты запуска и переполнения. То есть текущее состояние в процессе счета программно не контролируют (хотя, в принципе, это возможно).

При реализации или измерении интервалов времени всегда используют импульсы с постоянным периодом (частотой), как правило, от ГТИ МК (TМЦ) – т.е. таймер используют в режиме таймирования.

Максимальный интервал времени, который может реализовать таймер в конкретной конфигурации, считая от 0 до NMAX , выражается формулой:

,

где, Тi­= TМЦ  – период следования подсчитываемых импульсов.

Поэтому для реализации заданного интервала времени  ТЗ  на таймере нужно выполнить следующее:

1.  Проверить возможность реализации заданного интервала:

.

Поскольку , то, подбирая n, можно выбрать нужную конфигурацию.

Для конфигурации (М1,М0) = (00) значение n=5+8=13;

для конфигурации (М1,М0) = (01) значение n=16;

для конфигурации (М1,М0) = (10) значение n=8;

для конфигурации (М1,М0) = (11) значение n=8.

Если выбрать подходящее  n не удается, можно реализовать заданный интервал как совокупность дискрет времени: , где ТD реализуемая дискрета, а значение m можно контролировать программно, например, подсчитывая моменты переполнения таймера на регистре Ri (i – любое из 0, 1, …, 7).

2.  Рассчитать стартовое число для реализации заданного интервала:

.

Это значение должно быть записано в счетные регистры перед запуском таймера.

3.  В требуемый момент начала интервала включить таймер. Далее процессор может выполнять команды программы, не связанные с работой таймера.

4.   Когда интервал будет выдержан (т.е. таймер достигнет состояния NMAX и перейдет в “0”), автоматически установится флаг переполнения TF0=1 для таймера Т0 или  TF1=1 для таймера Т1. Этот флаг может быть проверен аппаратно (как сигнал прерывания) или программно.

Самостоятельно определить стартовое число, необходимое для реализации интервала времени ТЗ = 20 мс, если Тi­= TМЦ = 1 мкс