Какво се случва когато таймера се препълни ? Това правят всички таймери и това е тяхната цел, да се препълнят за да генерират прекъсване и да изпълнят командите, които сте задали във функцията за прекъсване на таймера. По този начин следим някакво време което ни изпълнява определени команди в процесора за управление на някакъв хардуер, променливи, часовници и много други. Прекъсването ще даде възможност на точно определено време да се изпълни някакво събитие, което ни помага при отчитане на входящи и/или изходящи данни, процеси и други.

1.       Когато таймера се препълни се вдига флага за прекъсване на таймера, процесора обработва командите които са във функцията на прекъсването и след това се връща към изпълнение на функциите в главната функция void main(void) във файла main.c

2.       ВНИМАНИЕ !!!!! КОЛКОТО ПО-ЧЕСТО ПРЕПЪЛВАТЕ ТАЙМЕРА, ТОЛКОВА ПО-ЧЕСТО ЩЕ СЕ ГЕНЕРИРА ПРЕКЪСВАНЕ В ПРОЦЕСОРА И МОЖЕ ДА НЕ ОСТАНЕ ВРЕМЕ ЗА ИЗПЪЛНЕНИЕ НА ОСНОВНИТЕ ФУНКЦИИ ВЪВ ГЛАВНАТА ФУНКЦИЯ !!!! АКО СТАРТИРАТЕ ПОВЕЧЕ ОТ ЕДИН ТАЙМЕР КОИТО И ДА СА ТЕ ВНИМАВАЙТЕ ЗА ВРЕМЕТО ЗА КОЕТО ГИ ПРЕПЪЛВАТЕ СЪОТВЕТНО В ПРОЦЕСОРА СЕ ГЕНЕРИРА ПРЕКЪСВАНЕ !!!

3.       Ще разгледаме това във показания код по-надолу във урока
На тази графика има няколко съществени разлики в настройката на таймер 2, таймер 4 и/или таймер 6. Таймерите в процесора с тази конфигурация като три отделни хардуерни блока са три броя с имена таймер 2, таймер 4 и таймер 6. В описанието на процесора микрочип са дали възможност да използваме няколко различни по хардуерна настройка таймера с цел по-голяма гъвкавост в различните приложения в електрониката.



 

Описание на параметрите на таймера :
1.       FOSC/4 е тактовата честота подавана на входа на таймера разделена предварително на 4.

2.       PRESCALER – е делител преди таймера, който с конфигурация от битове можете да изберете коефициент на делене показан на графиката, както и описанието на регистъра отговарящ за всеки от трите таймера поотделно.

3.       TMRx e регистъра на таймера 2,4,6 който се увеличава с 1 на всеки постъпил импулс след входящия делител според коефициента на делене.

4.       PRx е регистъра в който давате стойност до колко да брои таймера. В таймер 0 този регистър го няма. Таймер 0 винаги брой до 255 от колкото му зададете предварително. Таймерите 2,4,6 имат възможност да зададете и стойност на регистъра от колко да започне, както и стойност до колко да брои със тактова честота постъпваща от делителя преди таймера и подавани след делителя на таймера ако искате да го използвате и него.

5.       COMPARATOR e регистърът който ще отчете дали има равенство между двата регистъра, което съответно ще означава, че таймера се е препълнил и ще се подаде импулс на ИЗХОДЯЩИЯ ДЕЛИТЕЛ – POSTSCALER

6.       POSTSCALER – това е също делител на честота, но след таймера, който има възможност да бъде настроен да дели или да не дели а директно да подава изходящия импулс към флаговете за прекъсване всеки съответно на таймерите 2, 4, 6.

7.       TMRxIF е флага съответно 2, 4, 6 за всеки от трите таймера, който ще се установи в 1, когато таймера се препълни и се генерира прекъсване.