82
циклы), и использует для управления биты TR1 и TF1 таймера 1. Таким
образом, прерывание от переполнения регистра TH0, будет обозначено флагом
TF1.
Режим 3 предназначен для приложений, которым нужен дополнительный
8-битный таймер/счетчик. Когда таймер 0 работает в режиме 3, таймер 1 может
быть выключен установкой его в режим 3, или может быть оставлен
включенным для использования в качестве генератора тактовых импульсов для
последовательного интерфейса, или для любого приложения, которому не
требуется прерывание именно от таймера 1.
Настройка таймера на заданную частоту
Задача настройки таймера на заданную частоту во встраиваемых системах
обычно связана с
организацией системного времени.
В нашем случае под этим подразумевается настройка таймера в режиме
«таймер» таким образом, чтобы его переполнения происходили через
одинаковые интервалы времени (1 мс, 5 мс, 10 мс и т.д.), так называемые
кванты времени.
Расчет необходимой частоты работы таймера может быть произведен по
следующей формуле:
Counts
f
F
osc
⋅
=
12
,
где
F – необходимая частота,
f
osc
– частота микроконтроллера (в стенде
SDK-1.1
f
osc
= 11,0592 МГц),
Counts – количество тиков (счетов) таймера для
достижения частоты
F.
Так как таймеры у нас суммирующие, то регистры таймера (THx, TLx)
нужно инициализировать следующих кодом:
Counts
Counts
T
timer
−
=
max
,
где
Counts
max
– максимальное количество тиков в таймере, которое
определяется по разрядности таймера, его режиму работы. Например, если
таймер 16-битный (режим 1), то
Counts
max
= 65536.
Если в стенде SDK-1.1 необходимо настроить Таймер 0 на частоту
1000 Гц, то для этого нужно использовать 16-битный таймер (режим 1). По
формулам получится, что
Counts = 921 (чуть больше) и
T
timer
= 64615 (FC67h).
Таким образом, регистры Таймера 0 должны быть инициализированы так: TH0
= FCh, TL0 = 67h. В подразделе 6.4 приведен пример программирования
таймера 0 в стенде SDK-1.1.
84
Если теперь на вход микроконтроллера T0 подать сигнал с неизвестной
частотой, то в регистрах TH0 и TL0 будет записана его частота в килогерцах.
Достарыңызбен бөлісу: