Tutorials - PIC18 by Data Sheet

 
 

pag.133 - TMR2


Timer 2

Il Timer2 (TMR2), a 8 bit, comune a svariati  PIC, è legato alle funzioni speciali di comparatore e di clock per il modulo MSSP. Le sue caratteristiche principali sono :

  • timer o contatore di periodo a 8 bit
  • pre scaler e post scaler programmabili  dedicati
  • un unico registro di controllo
  • interrupt generabile a seguito di una comparazione
  • uso opzionale come sorgente del clock per lo shift del modulo MSSP

Inoltre , come per tutte le sorgenti di interrupt della serie PIC18, anche Timer1 può essere impostato per generare richieste di interrupt a due livelli di priorità.

Il registro T2CON è la via per controllare  le funzioni del Timer2, compreso il pre e post scaler :

T2CON bit  -   T2OUTPS3:2:1:0 TMR2ON T2CKPS1:0
funzione U R/W R/W R/W R/W R/W R/W R/W
default 0 0 0 0 0 0 0 0
  • bit 7     - : non utlizzato . In lettura è 0 
  • bit 6:3   T2OUTPS3:0 : Timer 2 postscaler
                 0000 =  1 : 1
                 0001 =  1 : 2
                  ...
                 1111 =  1 : 16
  • bit 2     TMR2ON : abilitazione del Timer2
                 1 =  abilitato
                 0 =  disabilitato
  • bit 1:0  T2CKPS1:0  : Timer 2 prescaler
                 00 =  1 :1
                 01 =  1 : 4
                 1x  =  1 : 16  

I valori di default al POR sono indicati nella tabella.

Il diagramma seguente schematizza il funzionamento di Timer2:

Nel funzionamento normale Timer2 è incrementato seguendo il clock interno (Fosc/4). Un prescaler permette di dividere questa frequenza pe 4 o per 16. Il valore accumulato nel registro TMR2 a 8 bit è comparato ad ogni ciclo del clock con il un registro PR2 : quando i due valori coincidono viene generata una uscita che può essere valida per il modulo PWM o per l' MSSP. Questo segnale azzera anche il contenuto di TMR2 e , passando attraverso un post scaler, genera una richiesta di interrupt. 

Sia TMR2 che PR2 sono direttamente leggibili e scrivibili. 
TMR2
viene azzerato ad ogni evento di Reset, mentre PR2 è inizializzato a FFh.

Il contenuto di conteggio sia del prescaler che del postscaler sono azzerati quando :
- viene scritto TMR2
- viene scritto T2CON
- viene effettuato un Reset (POR, MCLR, WDT, BOR)

Il contenuto di TMR2 non viene cambiato scrivendo T2CON.


Interrupt

L' interrupt di Timer2 è rilevato dal flag TMR2IF (PIR1<1>) e mascherato dal bit TMR2IE (PIE1<1>).
La richiesta di interrupt è generata quando il contenuto del registro di conteggio TMR2 eguaglia il valore scritto in PR2 ed è filtrata dal post scaler, programmabile da 1 a 16, ovvero è possibile avere la chiamata di interrupt ad un numero variabile di comparazioni avvenute.

La gestione interrupt del Timer1 richiede :

  • l' abilitazione del bit TMR2IE (PIE1<1>), che va posto a 1 se si desidera attivare l' interrupt 
  • Il bit di selezione della priorità dell' interrupt è TMR2IP (IPIR1 <1>). E' a 1 se si desidera l' alta priorità, altrimenti va a posto a 0. L' abilitazione del modo interrupt con priorità richiede di aver settato il bit IPEN (RCON<7>) ; altrimenti viene impiegato un sistema di interrupt senza livelli di priorità e l' impostazione di TMR2IP è indifferente.
  • Il flag di identificazione è TMR2IF (PIR1<1>) che va a 1 a seguito all' overflow del counter e va cancellato da software.

L' interrupt di Timer2 fa riferimento al registro PIR1 e quindi è considerata una interruzione periferica  e quindi sono dipendenti per l' abilitazione sia di GIE che di PEIE.


L' uscita di Timer2

Prima del post scaler è disponibile una uscita che segue il risultato della comparazione e viene impiegata nei moduli CCP che fanno da time base dell' uscita PWM.

Timer2 può anche essere usato come clock per le operazioni di shift delle comunicazioni  SPI, dipendenti dal modulo MSSP.

 


 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 15/04/11.