ELEMANIA
PIC16F690 - Timer
Timer come temporizzatore e come contatore

Il PIC16F690 contiene al proprio interno tre temporizzatori hardware (timer) denominati Timer0, Timer1 e Timer2. In generale un timer non è altro che un dispositivo in grado di contare il numero di volte in cui si verifica un dato evento, incrementando ogni volta il proprio conteggio di una unità.

I timer del PIC possono essere utilizzati in due modi diversi, a seconda di qual è la sorgente di eventi da conteggiare:

Quando un timer è usato come contatore, esso conta il numero di fronti presenti su un ingresso del PIC (per esempio, nel caso del Timer0, tale ingresso è il pin T0CKI).

Si noti il modulo antirimbalzo necessario per eliminare i rimbalzi (bounce) del pulsante meccanico.

Se invece il timer è usato come temporizzatore, esso conta il numero di impulsi di un clock interno o esterno (più precisamente, viene contato un impulso per ogni ciclo di istruzioni del PIC, cioè ogni 4 periodi del clock, FOSC/4). In questa modalità il timer diventa una sorta di orologio, che misura il tempo trascorso fra due eventi (per esempio fra due pressioni di un tasto).

Nel PIC, Timer0 e Timer1 possono essere usati in entrambi i modi (sia come temporizzatore che come contatore), mentre Timer2 può essere usato solo come temporizzatore.

Numero di bit e modulo

Un parametro molto importante di un timer è il numero di bit n. Infatti tale valore stabilisce il massimo numero di impulsi che il timer è in grado di contare, detto anche modulo del contatore. In generale il modulo di un contatore è pari a 2n.

Nel caso del PIC, Timer0 e Timer2 hanno 8 bit e dunque hanno un modulo pari a 28 = 256. Invece Timer1 è a 16 bit e dunque il suo modulo è 216 = 65536

 

Prescaler e postscaler

Il prescaler è un divisore di frequenza interno al PIC che permette di ridurre la frequenza degli impulsi di conteggio del timer dividendola per un certo fattore. Ogni timer del PIC possiede il proprio prescaler e il valore del prescaler può essere programmato dall'utente.

Il Timer2 possiede anche un postscaler, che funziona in modo analogo al prescaler, ma divide la frequenza in uscita dal timer.

La tabella seguente riassume i principali parametri dei tre timer presenti nel PIC16F690:

Timer Bit Modulo Utilizzo Prescaler Postscaler
TMR0 8 256 timer o counter da 1:1 a 1:256 -
TMR1 16 65536 timer o counter da 1:1 a 1:8 -
TMR2 8 256 timer da 1:1 a 1:16 da 1:1 a 1:16

Si osservi a questo proposito la figura seguente che si riferisce al funzionamento di un generico timer del PIC indicato con TMRx (dove x può valere 0, 1 oppure 2):

 

I noti il bit TMRxCS (TMR0CS, TMR1CS o TMR2CS a seconda dei casi) che permette di selezionare la sorgente degli impulsi da contare. Il registro TMRx contiene il valore corrente del conteggio.

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it