next up previous
Next: Il progetto software Up: Caratteristiche dell' MC68HC711E9 Previous: Il convertitore A/D

Il Main timer system

La realizzazione di un controllo in real time necessita la presenza di un sistema che sovraintenda alla temporizzazione delle varie istruzioni del programma; nel microcontrollore MC68HC11 questo ruolo è svolto dal Main Timer System.

Figure 4.7: Schema del Main Timer del microprocessore

Il cuore di questo sistema è il contatore a 16 bit detto free running (TCNT); esso all'accensione comincia a contare partendo dal valore $0000 incrementandosi fino a raggiungere $FFFF. Una volta segnalato l'overflow, portando il bit di flag TOF=1 del registro TFLG2, il sistema riprenderà il conteggio da $0000.

Attraverso la codifica di due bit contenuti nel registro di controllo TMSK2 ( Miscellaneous Timer Interrupt Mask Register 2) è possibile scegliere ogni quanti impulsi di clock il TCNT si incrementerà.

Alcune funzioni molto interessanti offerte dal Main Timer sono quelle di output compare; esse sono in grado di programmare l'esecuzione di un'azione in tempi prestabiliti.

Per ognuna delle cinque funzioni di output compare sono resi disponibili un registro a 16 bit nel quale scrivere il dato da confrontare ed un comparatore a 16 bit. Ad ogni ciclo di bus, il valore scritto nel registro a 16 bit viene confrontato con quello del free running counter; quando i valori nei due registri sono uguali, viene generata un'uscita che pone il flag relativo all' output compare a 1. Tale azione genera un interrupt (se abilitato) ed i terminali di uscita del Timer sono automaticamente cambiati a seconda della configurazione di alcuni bit di controllo.

Ognuno dei cinque interrupt, corrispondente alle cinque funzioni di output compare, è abilitabile separatamente.

Quattro delle cinque funzioni di output compare (OC2, OC3, OC4 e OC5) operano individualmente su un terminale specifico. La quinta funzione (OC1) è in grado di controllare tutte le combinazioni dei cinque terminali di uscita, lavorando anche in parallelo con le altre quattro funzioni.

Per le funzioni OC2-OC5 due bit di controllo del timer control register 1 (TCTL1) regolano l'azione automatica sui terminali di uscita quando TCNT è uguale al registro comparatore. I due bit di controllo vengono denominati OMx ed OLx (con x = 2,3,4 o 5) e permettono le seguenti quattro possibilità:

In fig.4.8 viene visualizzato il registro TCTL1.

Figure 4.8: Schema del registro TCTL1

Per quel che riguarda OC1 l'azione sui terminali di uscita è controllata agendo sui registri OC1M e OC1D. Il registro OC1M specifica quali terminali sono regolati da OC1. Il registro OC1D specifica i valori da inviare ai terminali quando l'operazione di confronto (di tempo) ha dato esito positivo. Quando OC1 ed un'altra funzione di output compare controllano un terminale comune ed entrambi cercano di cambiarne contemporaneamente il valore logico, la priorità è data ad OC1. In fig.4.9 vengono visualizzati i registri OC1M e OC1D.

Figure 4.9: Schema dei registri OC1M e OC1D

Nel corso delle varie fasi dello sviluppo del software sono state utilizzate le funzioni di output compare, esse sono state gestite sia con il metodo dell' interrupt (per generare i comandi da inviare al driver) sia con il metodo del polling (per generare dei ritardi).

Con il metodo del polling ed utilizzando un fattore di scala adeguato per il TCNT (bit PR1 e PR0), si sono potuti realizzare ritardi dell'ordine di mezzo secondo con risoluzione di otto micro secondi.


next up previous
Next: Il progetto software Up: Caratteristiche dell' MC68HC711E9 Previous: Il convertitore A/D
Marco Delaurenti
1999-06-25