Présentation :
Inspiré par son cousin analogique, celui-ci est entièrement configurable.

Le registre ACSR :
- ACD : Analog Comparator Disable : Bit d'arret du comparateur analogique; en cas d' inutilisation du comparateur, mettre ce bit à 1 afin de réduire la consommation du microcontrôleur. Le comparateur peut être arrêté ou mis en marche à tout moment.
- ACO : Analog Comparator Output :Résultat direct de la sortie du comparateur.
si Vain0 > Vain1 alors ACO = 1
- ACI : Analog Comparator Interrupt Flag : Bit de demande d'interruption quand la conditions sélectionnés est vérifiés (ACIS1 et ASCI0). Ce bit retourne à 0 automatiquement après traitement de l'interruption (si ACIE =1)
- ACIE : Analog Comparator Interrupt enable : Bit de validation de l'interruption ANA_COMP
- ACIC: Analog Comparator Input Capture Enable : la mise à 1 de ce bit connecte la sortie du comparateur à l'entrée de capture du timer 1.
- ACIS1 & ACSI0 : Séléction du mode d'activation de la sortie ACO :
Mode d'activation de la Sortie ACO
|
|
|
Changement d'etat 1-->0 ou 0-->1
|
|
|
|
|
|
|
|
|
Application :
Ici nous déciderons de nous servir du comparateur analogique pour enclencher une alarme haute température.
La tension issue de la sonde de température varie de 0 à 5 Volt et correspond à une gamme de 0 – 100 °C.
Le signal sera câblé sur la broche AIN0 (PB2)
Le point de consigne de l’alarme est définie par un potentiomètre câblé sur AIN1(PB3)
Nous aurons donc l’équation suivante :
Si Ain0 > AIN1 alors Alarme = 1 (si température > point de consigne alors alarme = 1)
Si AIN0<AIN1 alors Alarme = 0
Paramétrage du comparateur :
L’écriture du programme se résume ainsi :
1 - SEI = 1 (autorisation d’interruption général)
2 - ACD = 0 (mise en marche du convertisseur)
3 - ACIS1 = 0 et ACIS0 = 0 (Déclanchement de l’interruption par changement d’etat à la sortie de comparaison)
4 - ACIE = 1 (autorisation du comparateur à générer un interruption)
Programmation de la routine d'interruption :
A chaque changement de front à la sortie du comparateur, une interruption sera généré (ACI) et il restera à déterminer soit la mise en marche de l’alarme ou son arrêt, grâce à l’état du bit ACO
Attention : ce montage ne propose pas d'hystérésis
Listing :
|