Сброс таймера и изменение периода
Во FreeRTOS есть возможность сбросить таймер после того, как он
уже запущен. В результате сброса таймер начнет отсчитывать времен-
ной интервал (равный периоду таймера) не с момента, когда таймер
был запущен, а с момента, когда произошел его сброс (рис. 3).
Типичный пример использования операции сброса таймера —
в устройстве, содержащем ЖКИ-дисплей с подсветкой. Подсветка
дисплея включается по нажатию любой клавиши, а выключается спу-
стя, например, 5 с после последнего нажатия. Если для отсчета 5 с ис-
пользовать интервальный таймер, то операция сброса этого таймера
должна выполняться при нажатии любой клавиши (подсветка в это
время включена). Функция таймера должна реализовывать выклю-
чение подсветки. В этом случае, пока пользователь нажимает на кла-
виши, таймер сбрасывается и начинает отсчет 5 с с начала. Как только
с момента последнего нажатия на клавишу прошло 5 с, выполнится
функция таймера, и подсветка будет выключена.
Операция изменения периода работы таймера подобна операции
сброса. При изменении периода отсчет времени также начинается с на-
чала, отличие заключается лишь в том, что таймер начинает отсчиты-
вать другой, новый период времени. Таким образом, время, прошедшее
от момента запуска до момента изменения периода, не учитывается: но-
вый период начинает отсчитываться с момента его изменения (рис. 4).
На рис. 4б видно, что в результате изменения периода таймер
не срабатывает, если на момент изменения периода таймер отсчитал
промежуток времени больше, чем новый период таймера.
рис. 2. Работа интервального и периодического таймера
рис. 3. Влияние сброса таймера на отсчет времени
рис. 4. Влияние изменения периода таймера на отсчет времени
а
а
б
б
|