Page 21 - 6636
P. 21
4 n
8
T 2 2 pres , n 0,1,2,...,8 , (4.1)
Fosc
де F osc – тактова частота мікроконтролера, 2 npres – коефіцієнт
ділення тактових імпульсів дільником.
Якщо період спрацювання таймера занадто малий, то пе-
ріод можна збільшити увівши в програму лічильну змінну.
Алгоритм роботи такого таймера виглядатиме таким чином:
значення лічильної змінної при настанні кожного переривання
таймера збільшується на 1, при досягненні максимального
встановленого значення здійснюються потрібні дії в програмі
і в лічильну змінну записується нульове значення (див. алго-
ритм переривання таймера на рис. 4.2). Максимальне значення
лічильної змінної N max можна обчислити згідно виразу
N max=T потр/T, (4.2)
де T потр – потрібна часова затримка.
Для опису підпрограми обробника переривання від тайме-
ра 0 в середовищі PICC використовують спеціальне слово
#INT_TIMER0. Після цього слова розміщують текст підпрог-
рами:
#INT_TIMER0
void TIMER0_isr(VOID) {
//тут розміщується текст команд підпрограми
}
Таблиця 4.1 – Команди програми для керування таймером
Команда Пояснення Приклад
enable_interrupts Ця функція вмикає enable_interrupts(INT_TIMER0);
(level) переривати на
заданому рівні.
disable_interrupts Ця функція вими- disable_interrupts(INT_TIMER0);
(level) кає переривати на
заданому рівні.
setup_timer_0 Ця функція на- setup_timer_0
(mode) строює таймер 0 (T0_INTERNAL|T0_DIV_256);
20