Прерывание от таймера

Прерывание от TMR0 вырабатывается при переполнении счетчика (переходе от 0FFh к 00h). При переполнении устанавливается в «1» бит T0IF (INTCON<2>). Прерывание может быть замаскировано установкой в «0» бита T0IE (INTCON<5>). Бит T0IF должен быть сброшен в «0» в процедуре обработки прерывания от TMR0 до того, как прерывания снова будут разрешены. Прерывание от TMR0 не может вывести микроконтроллер из режима пониженного энергопотребления SLEEP, поскольку в режиме SLEEP таймер TMR0 выключен.

Использование TMR0 с внешним сигналом

Если для тактирования TMR0 используется внешний сигнал, то он должен удовлетворять определенным требованиям для синхронизации с внутренней тактовой частотой. Кроме того, между перепадом на выводе T0CKI и реальным увеличением счетчика TMR0 есть некоторая задержка.

Если предварительный делитель не используется, внешний тактовый сигнал на входе T0CKI должен сохранять как высокий, так и низкий уровень в течение не менее двух периодов тактового генератора.

Когда используется предварительный делитель, входной сигнал TMR0 делится асинхронным счетчиком предварительного делителя, поэтому выходной сигнал делителя является симметричным. Период сигнала на входе TMR0 должен быть не менее четырех периодов тактового генератора. Сигнал же на входе T0CKI должен иметь высокие и низкие уровни длительностями не менее 10 нс.

Так как выход предварительного делителя синхронизирован с внутренней тактовой частотой, то возможна небольшая задержка между перепадом сигнала на выводе T0CKI и моментом увеличения содержимого TMR0.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: