Configuracion del Modulo ComparadorPara los que aun no dominan muy bien el tema de como utilizar las entradas comparadoras del PIC voy a explicarlo un poco con ayuda del datashet.
El modulo comparador contiene 2 comparadores analogicos. Las entradas de los comparadores son multiplexadas con los pines de I/O RA0 a RA3, mientras las salidas son multiplexadas en los pines RA4 y RA5. El voltaje de referencia interno tambien puede ser una entrada para los comparadores (lo que nos ahorra pines de entrada).
El primer paso es configurar el registro CMCON que es el encargado de manipular el funcionamiento de los comparadores. Este registro consta de los siguientes Bits:
R-0 | R-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 |
C2OUT | C1OUT | C2INV | C1INV | CIS | CM2 | CM1 | CM0 |
A continuacion muestro la descripcion de cada registro:
C2OUT:Bit de salida del comparador 2.
Cuando C2INV=0:1=C2 Vin+ > C2 Vin-
0=C2 Vin+ < C2 Vin-
Cuando C2INV=1:1=C2 Vin+ < C2 Vin-
0=C2 Vin+ > C2 Vin-
C1OUT:Bit de salida del comparador 1.
Cuando C1INV=0:1=C1 Vin+ > C1 Vin-
0=C1 Vin+ < C1 Vin-
Cuando C1INV=1:1=C1 Vin+ < C1 Vin-
0=C1 Vin+ > C1 Vin-
C2INV:Bit de Inversion del Comparador 2
1=Salida invertida de C2
0=Salina no invetida de C2
C2INV:Bit de Inversion del Comparador 2
1=Salida invertida de C2
0=Salina no invetida de C2
CISBit del Switch de Entrada:
Cuando CM2:CM0=110:1=C1 Vin- conectado a RA3/AN3
C2 Vin- conectado a RA2/AN2
0=C1 Vin- conectado a RA0/AN0
C2 Vin- conectado a RA1/AN1
CM2:CM0: Bits de los modos de comparador
Hay ocho modos de operacion para los comparadores a como muestra la siguiente figura.
Interrupciones del ComparadorEl flag de interrupcion del comarador es seteado siempre que haya un cambio en los valores de salida de cualquier comparador. El Software no necesitara mantener informacion acerca del estado de los bits de salida para determinar el cambio ocurrido. El bit CMIF (Registro PIR) es le flag del comparador. Este debe ser Reseteado a cero. Ya que es posible escribir 1 a su registro, una interrupcion simulada podria ser iniciada.
El bit CMIE (registro PIE) y los bits PEIE y GIE (registro INTCON) deben setearse para habilitar la interrupcion. Si cualquiera de estos bits son limpiados, la interrupcion no se habilitara
Nota:
Si un cambio en CMCON (C1OUT o C2OUT) ocurre cuando una operacion de lectura esta siendo ejecutada (inicio del ciclo Q2), el CMIF podria no activarse.
En la Rutina de Interrupcion, el usuario puede limpierla de la siguiente manera:
- Cualquier lectura o escritura de CMCON finalizara la condicion de error.
- Limpiar el bit CMIF.
La mayoria de estos datos fueron sacados del datasheet por si necesitan mas informacion