TIMER 2
Le caratteristiche principali sono:
prescaler selezionabile tra 1:1, 1:4 e 1:16,
postscaler selezionabile tra 1:1 e 1:16 in passi da uno.
A differenza degli altri due timer, questo può essere incrementato solamente dal clock principale del microcontroller, ovviamente tramite il prescaler appena citato.
Al registro di conteggio vero e proprio TMR2 è associato il registro PR2, detto "registro di periodo". Durante il normale funzionamento, questi due registri vengono continuamente confrontati e si ottiene un interrupt quando i valori di questi due registri sono uguali. Tale interrupt è comunque soggetto al postscaler: questo significa quindi che l'interrupt potrebbe anche essere volutamente ritardato rispetto al momento del confronto stesso. Per attivare il Timer2, che altrimenti resterebbe in riposo, si devono settare correttamente i bit del registro T2CON (TIMER 2 CONTROL register) visibili in figura sotto :
T2CKPS1:T2CKPS0 consentono
l'impostazione del prescaler.
00 = Prescaler is 1
01 = Prescaler is 4
1x = Prescaler is 16
TMR2ON abilita o arresta il Timer2 :
TMR2ON = 0 arresta TIMER 2;
TMR2ON = 1 abilita TIMER 2.
T2OUTPS si imposta il valore di divisione del postscaler, che, come visto, passa da 1:1 a 1:16 in passi da 1.
0000 = 1:1 postscale
0001 = 1:2 postscale
0010 = 1:3 postscale
•
•
•
1111 = 1:16 postscale
Per abilitare e interrogare l'eventuale responsabilità di un interrupt, i flag sono contenuti nei registri PIE1 e PIR1 :
Ricordarsi
ovviamente del GIE e del PEIE (vedi lezioni sull' interrupt).
I contatori di postscaler e prescaler vengono cancellati quando si verifica una delle seguenti operazioni:
una scrittura per il TMR2 ;
una modifica su T2CON ;
qualsiasi dispositivo che resetta il TMR2 (POR, Reset MCLR, WDT reimpostare o BOR) non cancella quando T2CON è scritto.
Il TIMER 2 è apparentemente semplice e di secondaria importanza, ma vedremo che viene utilizzato da molte periferiche del microcontrollore.