Per capirci qualcosa ho scritto un semplice codice per utilizzare direttamente il comparatore ma.. cambiando il pin PB0 e PB1 non viene chiamato l'interrupt con il simulatore di atmel studio, puoi darmi qualche dritta?
#define F_CPU 8000000UL
#include <util/delay.h>
#include <avr/io.h>
#include <avr/interrupt.h>
volatile int x = 0;
ISR(ANA_COMP_vect)
{
x--;
if (bit_is_set(ACSR, ACO)) //Check for rising or falling edge
{
PORTB |= _BV(PB4); // Turn led on
}
else
{
PORTB &= ~(_BV(PB4)); // Turn led off
}
}
int main(void)
{
// ACSR (Analog Comparator Setting Register)
// ACIE (Analog Comparator Interrupt Enable)
ACSR |= _BV(ACIE);
DDRB |= _BV(PB4); // PB4 output
sei(); // Enable global interrupt
while(1)
{
x++;
}
}
EDIT: Avevo provato analogComp su un device fisico, il problema col mio codice penso sia legato al simulatore che non emula bene la periferica