//Bron: https://www.ee-diary.com/2021/07/how-to-use-arduino-analog-comparator.html#
//Definition of interrupt names
#include <avr/io.h>
// ISR interrupt service routine
#include <avr/interrupt.h>
void setup () {
DDRD |= (1<<PD4);
DIDR1 |= (1<<AIN0D) | (1<<AIN1D); // Disable Digital Inputs at AIN0 and AIN1
ADCSRB &= ~(1<<ACME); //Clear ACME bits in ADCSRB to use external input at AIN1 -ve input
ACSR =
(0 << ACD) | // Analog Comparator: Enabled
(0 << ACBG) | // Clear ACBG to use external input to AIN0 +ve input
(0 << ACO) | // Analog Comparator Output: OFF
(1 << ACI) | // Analog Comparator Interrupt Flag: Clear Pending Interrupt by setting the bit
(0 << ACIE) | // Analog Comparator Interrupt: Disabled
(0 << ACIC) | // Analog Comparator Input Capture: Disabled
(0 << ACIS1) | (0 << ACIS0); // Analog Comparator Interrupt Mode: Comparator Interrupt on Output Toggle
}
void loop() {
if (ACSR & (1<<ACO))
PORTD |= (1<<PD4);
else
PORTD &= ~(1<<PD4);
}