TIPS e TRICKS del modulo CCP - 8

Modalità COMPARE

In modalità  Compare, il valore caricato nel registro a 16-bit CCPR1H<7:0>,CCPR1L<7:0> e' costantemente confrontato con il valore del TIMER1.
Quando si verifica una situazione di uguaglianza tra i contenuti dei due registri sopra citati (detto  match ) il pin CCP1 può essere:

1) forzato al valore alto :" Driven high "

2) forzato al valore basso: " Driven low "

3) restare immutato: "Remains unchanged "

L'azione sul pin e' determinato dalla configurazione scritta sui bit di controllo CCP1M3:CCP1M0 (CCP1CON<3:0>). In corrispondenza del match viene generato un interrupt dal modulo CCP. La configurazione dei suddetti bit permette anche una configurazione ( CCP1CON = b 00001010 ) in cui la condizione di match genera un software interrupt lasciando inalterato il pin CCP1 e un a configurazione detta Special Event Trigger. 
Il Timer1 non e' normalmente azzerato quando si genera un interrupt da parte del modulo CCP configurato in modalità Compare mode. La sola eccezione a questo si ha quando il modulo CCP e' configurato come in modalità "Special Event Trigger". In questa modalità, quando il Timer1 e i registri CCPR1H,CCPR1L sono uguali, si genera un interrupt  e  il Timer1 si azzera e una conversione A/D parte ( se il modulo A/D e' abilitato).

"Perché usare la modalità Compare ?"

La modalità Compare  lavora bene come cronometro ad arresto. In un cronometro ad arresto, un tempo predeterminato e' caricato e questo conta indietro fino a che il tempo zero e' raggiunto. La modalità Compare permette di lavorare come un cronometro  la differenza che si conta avanti, partendo da zero, fino al valore predeterminato. Questa modalità e' utile per generare specifiche azioni in precisi intervalli. Un timer potrebbe essere usato per realizzare la stessa funzione, comunque, questo vorrebbe significare precaricare il timer ogni volta prima del conteggio. La modalità ' Compare ha anche il vantaggio di cambiare automaticamente lo stato del pin CCP1 in base alla configurazione scritta sui registri di controllo.