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

 
 
 
«Не волнуйтесь, если что-то не работает. Если бы всё работало, вас бы уволили.»
Mosher’s Law of Software Engineering
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципы программирования MSC-51 :: Особенности реализации временных интервалов

Особенности реализации временных интервалов

Реализация временных интервалов (задание и измерение) имеет некоторые особенности, вызванные тем, что содержимое таймерных регистров нельзя контролировать в процессе подсчета импульсов без резкого снижения эффективности процессора (то есть дополнительной загрузки процессора программной проверкой содержимого таймерных регистров). В нормальном режиме параллельной работы процессора и таймера последний информирует процессор лишь о моментах переполнения путем формирования сигнала прерывания.

Исходя из этого, для реализации интервала времени заданной продолжительности T, сек, необходимо выполнить такие действия:

1.     Проверить возможность реализации заданного интервала. Должно выполняться условие

[ T / Ti ] < Nmax,

где Ti - период следования подсчитываемых импульсов, (импульсы ГТИ МК51);

Nmax - максимальное число, которое может быть записано в таймерный регистр в конкретной конфигурации; [ ] - операция взятия целой части.

В случае невыполнения условия надо выбрать другой режим работы таймера или осуществить измерение на каскаде из двух (или больше) таймеров.

2.     В таймерные регистры необходимо загрузить стартовое число, от которого будет начинаться счет; значение стартового числа определяется формулой

Ns = Nmax - [ T / Ti ].

После этого таймер может быть включен (например, командой SETB TRx), и через T секунд (с точностью Ti) при переполнении будет сформированный сигнал прерывания TFx, то есть процессор получит информацию о завершении заданного интервала. Процесс реализации интервала иллюстрируется схемой (рис. 14.6):

Диаграмма реализации интервала времени на таймере

Рис. 14.6. Диаграмма реализации интервала времени на таймере