Особенности реализации временных интервалов
Реализация временных интервалов (задание и измерение) имеет некоторые особенности, вызванные тем, что содержимое таймерных регистров нельзя контролировать в процессе подсчета импульсов без резкого снижения эффективности процессора (то есть дополнительной загрузки процессора программной проверкой содержимого таймерных регистров). В нормальном режиме параллельной работы процессора и таймера последний информирует процессор лишь о моментах переполнения путем формирования сигнала прерывания.
Исходя из этого, для реализации интервала времени заданной продолжительности T, сек, необходимо выполнить такие действия:
1. Проверить возможность реализации заданного интервала. Должно выполняться условие
[ T / Ti ] < Nmax,
где Ti - период следования подсчитываемых импульсов, (импульсы ГТИ МК51);
Nmax - максимальное число, которое может быть записано в таймерный регистр в конкретной конфигурации; [ ] - операция взятия целой части.
В случае невыполнения условия надо выбрать другой режим работы таймера или осуществить измерение на каскаде из двух (или больше) таймеров.
2. В таймерные регистры необходимо загрузить стартовое число, от которого будет начинаться счет; значение стартового числа определяется формулой
Ns = Nmax - [ T / Ti ].
После этого таймер может быть включен (например, командой SETB TRx), и через T секунд (с точностью Ti) при переполнении будет сформированный сигнал прерывания TFx, то есть процессор получит информацию о завершении заданного интервала. Процесс реализации интервала иллюстрируется схемой (рис. 14.6):
Рис. 14.6. Диаграмма реализации интервала времени на таймере
|