\section{Module Comparateurs}

      Auteur: Santiago Gonzalez

      Courrier: santigoro en gmail.com

      Comprendre la conversion Analogique-Numérique : ici

      (\url{http://es.wikipedia.org/wiki/Conversion\_analogica-digital})

Voici les fonctions pour travailler avec les deux comparateurs internes des PIC16F87X.

\subsection{comp\_init}
Initialise le module comparateurs

void comp\_init(unsigned char set\_config));

set\_config Definit les entrées analogiques et Vref,
Les options possibles sont : \\
COMP\_RESET \\
COMP1\_OUT                    //  Comparador 1 con salida por RA4 \\
TWO\_COMP                     //  Dos comparadores independientes \\
TWO\_COMP\_OUT                 //  Dos comparadores independientes, salidas por RA4 y RA5 \\
TWO\_COMP\_COMREF              //  Dos comparadores con entrada común: RA3 \\
TWO\_COMP\_COMREF\_OUT          //  Dos comparadores, entrada común RA3, salidas RA4 RA5 \\
TWO\_COMP\_MULTI4\_VREF          // Dos comparadores con Vref interna, 4 entradas multiplexad \\
COMP\_OFF 

\subsection{comp\_set\_multiplex}
Établit que les entrées sont connectées dans le mode multiplexé

comp\_set\_multiplex(unsigned char set\_switch);

set\_switch détermine que les canaux sont multiplexés.

Les options possibles sont : \\
 RA0\_RA1
 RA2\_RA3

\subsection{comp\_set\_vref}
cette fonction change la valeur de Vref interne, si préalablement on a initialisé l'usage de Vref interne avec: comp\_vref\_mode().

void comp\_set\_vref(unsigned char set\_vref);

set\_vref détermine la valeur de Vref interne, en poucentage de Vpp, par exemple:
comp\_Vref\_mode(RA0\_RA1, VREF\_65) active les entrées RA0 et RA1 avec Vref interne égal à 
65\% de Vpp. Les valeurs sont valides entre VREF\_0 y VREF\_75 , bien que dans la pratique on n'obtiendra pas de valeurs supérieures à 70\% de Vdd et ce module n'est capable de générer que 30 valeurs distinctes de
Vref, ainsi le pourcentage sélectionné arrondit au valeur la plus proche. La précision est plus mauvaise
au dessous de 25\% de Vdd. Pour plus de details consulter le datasheet du pic utilisé.

Pour vérifier le fonctionnement et l'exactitude de Vref interne on peut activer le bit 6 CVROE de
CVRCON, Vref restant connectée à RA2:
   CVRCONbits.CVROE = 1;           //maintenant Vref est présent en RA2

Cette sortie peut s'utiliser comme source variable de tension (D-A), bien que de haute impédance, pour obtenir une plus grande capacuté de courant on peut utiliser un amplificateur opérationnel comme suiveur de tension

\subsection{comp\_inv}
Inverse ou non les sorties des comparateurs

void comp\_inv(unsigned char set\_inv);

set\_inv definit si les sorties des comparateurs s'inversent ou non

Les options possibles sont : \\
 NO\_INV \\
 C1\_INV \\
 C2\_INV \\
 C1\_C2\_INV \\

\subsection{comp1\_read}
Cette fonction lit la sortie du comparateur 1, les valeurs possibles sont 0 ou 1.

void comp1\_read();

\subsection{comp2\_read}
Cette fonction lit la sortie du comparateur 2, les valeurs possibles sont 0 ou 1.

void comp2\_read();

\subsection{comp\_reset}
Cette fonction remet à zéro (reset) le module Comparateurs,
le module reste actif mais la lecture sera de 0.

void comp\_reset(void);

\subsection{comp\_off}
Cette fonction éteint le module Comparateurs, évitant la consommation inutile de courant.

void comp\_off(void);

\subsection{Exemple du Module Comparateurs}
pour compiler tu as besoin des commandes suivantes

Exemple de compilation : ./compila.sh ej\_comp\_87Xa.c 16f877a

ej\_comp\_87Xa.c
\verbatiminput{source/ej_comp_87Xa.c}
