La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il timer HC11 è basato su un contatore free-running a 16 bit con un prescaler programmabile a 4 stati La funzione di overflow permette di estendere le.

Presentazioni simili


Presentazione sul tema: "Il timer HC11 è basato su un contatore free-running a 16 bit con un prescaler programmabile a 4 stati La funzione di overflow permette di estendere le."— Transcript della presentazione:

1 Il timer HC11 è basato su un contatore free-running a 16 bit con un prescaler programmabile a 4 stati La funzione di overflow permette di estendere le capacità di conteggio oltre i 16 bit del contatore Descrizione generale Il timer HC11 comprende: 3 funzioni indipendenti Input Capture (IC) 5 funzioni indipendenti Output Compare (OC) le funzioni IC permettono di registrare listante in cui si verifica un dato evento sui corrispondenti pin di input le funzioni OC permettono di generare dei segnali sui corrispondenti pin di output o di produrre dei ritardi temporali

2 Lelemento centrale del timer HC11 è il contatore free-running a 16 bit: il conteggio parte da $0000 al reset dellHC11 e poi continua indefinitamente; Contatore quando viene raggiunto il valore massimo $FFFF, viene settato un flag di overflow, mentre il conteggio ritorna a $0000 e riparte finché lHC11 è operativo, non cè alcun modo di resettare, cambiare o interrompere il conteggio il contatore può essere letto in qualsiasi momento ed è accessibile mediante il registro TCNT: TCNT b 15 b0b0 $100E, $100F il registro TCNT deve essere letto utilizzando un istruzione di lettura a 2 byte (es. LDD, LDX,…)

3 Un prescaler programmabile permette di selezionare una tra quattro frequenze di CLOCK per la temporizzazione del contatore: questa possibilità consente al programmatore di operare un compromesso tra la risoluzione e il range del timer Prescaler il fattore di prescale può essere impostato mediante 2 bit del registro TMSK2: TMSK2 b7b7 b1b1 b0b0 $1024PR1PR0 E=2 MHz PR0PR1Prescalerisoluzionerange ns32,77 ms s 131,1 ms s 262,1 ms s 524,3 ms

4 Il range del timer è importante perché il software necessario per il funzionamento del timer è più complicato se deve tenere in considerazione eventuali overflow. Prescaler (cont.) Se i periodi di tempo con cui si ha a che fare sono inferiori al range del timer, allora loverflow può essere ignorato e gli intervalli di tempo possono essere calcolati usando le semplici istruzioni aritmetiche a 16-bit, anche qualora nellintervallo considerato si verifichi un overflow. Esempio: conteggio del timer=$FFF0 si vuole generare un evento dopo 100 (=$64) cicli di CK $FFF0 + $0064 = $10054 si programma il timer in modo che levento si verifichi quando il conteggio raggiunge $0054 in 100 cicli di CK il timer va in overflow e ricomincia a contare fino a $0054, quando lOC accade

5 Nella scelta del fattore di prescaler si devono considerare la risoluzione e la lunghezza max. degli intervalli di tempo con cui si ha a che fare. Prescaler (cont.) Esempio: supponiamo di dover misurare degli impulsi di durata compresa tra 10 ms e 100 ms un fattore di prescale pari a 4 garantisce: range=131,1ms un errore pari 1 conteggio rappresenta un errore dello 0,02% sull impulso più breve risoluzione=2 s poiché il range è > dellimpulso più lungo atteso, loverflow può essere ignorato

6 Il timer HC11 dispone di 3 funzioni IC indipendenti, accessibili tramite i pin PA0, PA1 e PA2 del port A: Funzioni Input Capture (IC) Ogni funzione IC comprende: un latch a 16 bit logica di riconoscimento dei fronti di ingresso logica di generazione dell interrupt Possibili applicazioni: misure di periodo e frequenza misure di durata di un impulso … Le funzioni IC vengono utilizzate per registrare listante in cui si verifica un dato evento esterno

7 Il latch a 16 bit cattura il valore del contatore nellistante in cui sul pin corrispondente si verifica un dato fronte di segnale, la cui polarità può essere selezionata via software. Allevento di IC il programmatore può eventualmente far corrispondere anche la generazione di una RICHIESTA DI INTERRUPT (IRQ). Funzioni Input Capture (cont)

8 Funzioni Input Capture - Registri Latch a 16 bit I registri TIC possono essere letti mediante unistruzione di lettura a 16 bit, mentre non vengono influenzati dal reset e non possono essere scritti via software. Le 3 funzioni IC sono indipendenti e possono catturare tutte lo stesso valore di conteggio, se i tre fronti di ingresso si verificano contemporaneamente. Il valore presente nel registro TIC corrisponde sempre al fronte più recente che si è verificato sul corrispondente pin.

9 Funzioni Input Capture - Registri logica di riconoscimento del fronte e di generazione dellinterrupt I bit di stato ICxF (x=1,2,3), vengono automaticamente posti a 1 quando si verifica il fronte previsto sul corrispondente pin di input. Tale bit di stato può essere azzerato scrivendo un 1 nella corrispondente posizione sul registro TFLG1 I bit di controllo ICxI (x=1,2,3), permettono allutente di configurare ogni funzione IC per essere gestita mediante polling o richiesta di interrupt, senza peraltro influenzare il bit ICxF. ICxI=0 interrupt inibito; ICxI=1 interrupt abilitato; NB - prima di lasciare la routine di servizio dellinterrupt occorre azzerare il bit ICxF

10 Funzioni Input Capture - Registri opzioni programmabili E possibile programmare via software quale fronte del segnale applicato al corrispondente pin di input attiva la funzione IC EDGxBEDGxAconfigurazione 00IC disabilitata 01IC abilitata sul fronte di salita 10IC abilitata sul fronte di discesa 11IC abilitata su entrambi i fronti

11 Il timer HC11 dispone di 5 funzioni OC indipendenti, accessibili tramite i pin PA3, PA4, PA5, PA6 e PA7 del port A: Funzioni Output Compare (OC) Ogni funzione OC comprende: un registro di confronto a 16 bit un comparatore a 16 bit logica di generazione dell interrupt Possibili applicazioni: produzione di impulsi produzione di onde quadre generazione di ritardi …. Le funzioni OC vengono utilizzate per far accadere un evento esterno in un dato istante

12 Il comparatore confronta il valore del contatore free running con il valore contenuto nel registro di confronto a 16 bit; quando si verifica un uguaglianza: viene settato il flag di stato della funzione OC, il corrispondente pin viene posto nello stato scelto dal programmatore mediante opportuni bit di controllo eventualmente viene effettuata una richiesta di interrupt alla CPU Funzioni Output Compare (cont.)

13 Funzioni Output Compare - Registri Registri di confronto a 16 bit I registri TOC possono essere scritti o letti mediante unistruzione a 16 bit e vengono forzati a $FFFF durante il reset. Una scrittura del byte più significativo di un registro TOC inibisce la funzione OC per un ciclo di clock (allo scopo di prevenire falsi positivi) Fintanto che una funzione OC è stata impostata in modo da cambiare lo stato del corrispondente pin o da generare un interrupt, tali azioni si verificano ogni volta che il contatore TCNT eguaglia il registro TOC.

14 Funzioni Output Compare - Registri flag di stato del confronto e generazione dellinterrupt I bit di stato OCxF (x=1,2,3,4,5), vengono automaticamente posti a 1 ogni volta che il corrispondente registro TOC eguaglia il contatore free running. Tale bit di stato può essere azzerato scrivendo un 1 nella corrispondente posizione sul registro TFLG1 I bit di controllo OCxI (x=1,2,3,4,5), permettono allutente di configurare ogni funzione OC per essere gestita mediante tecnica polling o mediante generazione di richiesta di interrupt, senza peraltro influenzare il corrispondente bit OCxF. OCxI=0 interrupt inibito; OCxI=1 interrupt abilitato; NB - prima di lasciare la routine di servizio dellinterrupt occorre azzerare il bit OCxF

15 Funzioni Ouput Compare - Registri opzioni programmabili Lutente può programmare lazione che deve avvenire sul pin corrispondente ad ogni funzione OC indipendentemente dalle altre. Per le funzioni OC2 OC5 tale programmazione viene effettuata mediante una coppia di bit di controllo OMx, OLx (x=2,3,4,5) del registro TCTL1: OMxOLxconfigurazione 00OC non agisce sul pin (OC1 si) 01Toggle OCx pin 10Clear OCx pin 11Set OCx pin

16 Funzioni Output Compare – OC1 La funzione OC1 può controllare fino a 5 pin di uscita simultaneamente ed è in grado di controllare anche i pin già soggetti ad un altra funzione OC. OC1Mxpin PAxOC1Dx 1affetto da OC1valore che deve essere assunto dal pin PAx 0non affetto da OC1dont care pin bidirezionale deve essere definito come output ponendo a 1 il bit più significativo (DDRA7) del registro PACTL (address=$1026)

17 Funzioni Output Compare – OC1 La possibilità di controllare delle uscite multiple con una unica funzione OC è utile specialmente quando le uscite sono associate ad un singolo dispositivo esterno (es. segnali di pilotaggio di un motore passo-passo) Quando si utilizza OC1, le rimanenti funzioni OC2 OC5, possono essere utilizzate: come generiche funzioni di temporizzazione che non influiscono direttamente sui pin in congiunzione con la funzione OC1 per ottenere ancora maggiore flessibilità Se OC1 ed una altra funzione OCx controllano il medesimo pin e cercano di cambiarlo contemporaneamente, OC1 ha la priorità.

18 Output Compare Forzato Il meccanismo di forzatura dellOC fornisce un modo per cambiare lo stato dei pin associati alla funzione OC, senza attendere il confronto della funzione OC stessa. FOCx (x=1,2,3,4,5) = 0 nessun effetto sul corrispondente canale OC 1 al conteggio di timer successivo, il canale viene forzato ad eseguire la azione sul pin programmata La funzione di OC forzato provoca il cambiamento del pin ma non altera il flag di stato OCxF e non genera richieste di interrupt. Lo stato logico alto dei bit FOCx è transitorio e la lettura del registro CFORC non restituirà mai altro che $00.

19 Funzione Real Time Interrupt (RTI) La funzione RTI può essere impiegata per generare richieste di interrupt con cadenza periodica Il segnale di CLOCK della funzione RTI non può essere mai né fermato né interrotto il tempo che intercorre tra due time-out successivi della funzione RTI è una costante, indipendente dai tempi di esecuzione del SW la velocità del segnale di CLOCK della funzione RTI può essere impostata mediante 2 bit di controllo del registro PACTL: PACTL b7b7 b1b1 b0b0 $1026 RTR1RTR0 RTR1RTR0RT factorf CK (Hz)T CK (ms) ,144, ,078, ,0416, ,5232,77

20 Funzione RTI - Registri logica di generazione dellinterrupt Il bit di stato RTIF viene automaticamente posto a 1 al termine di ogni periodo T CK. Tale bit di stato può essere azzerato scrivendo un 1 nella corrispondente posizione sul registro TFLG2. Il bit di controllo RTII permette allutente di configurare la funzione RTI per essere gestita mediante polling o richiesta di interrupt, senza peraltro influenzare il bit RTIF. RTII=0 interrupt inibito; RTII=1 interrupt abilitato; NB - prima di lasciare la routine di servizio dellinterrupt occorre azzerare il bit RTIF


Scaricare ppt "Il timer HC11 è basato su un contatore free-running a 16 bit con un prescaler programmabile a 4 stati La funzione di overflow permette di estendere le."

Presentazioni simili


Annunci Google