ATmega16 – Comparador Analogico

El comparador analógico es un periférico bastante simple pero puede darnos grandes beneficios. Este comparador permite comparar los valores de voltaje aplicados a dos pines del uC. El resultado de la comparación es un nivel lógico el cual puede ser leído mediante programa (ACO: Analog Comparator Output bit).

Tiene también la característica de generar una interrupción el cual depende del nivel del resultado el comparador.

Es posible seleccionar las entradas del ADC del uC para que reemplace la entrada negativa del comparador analógico. Para poder hacer esto es necesario que el ADC este desactivado y tenemos que activar el bit ACME del registro SFIOR.

Podemos escoger la entrada del ADC siguiendo la siguiente tabla:

ACSR: Es el registro encargado de configurar y manejar al Comparador Analógico.

ACD: Bit de inhabilitación del Comparador Analógico.
ACBG: Si es uno el voltaje de referencia positivo es el Bandgap (1.23V).
ACO: Bit de salida del Comparador Analógico además solo puede ser leído.
ACI: Bit de Flag de interrupción.
ACIE: Bit para activar la interrupción.
ACIC: Bit para activar el disparo del timer 1 mediante el Comparador Analógico.
ACIC0:1: Bits de selección de modo de interrupción.

Ejemplo: