Wpis z mikrobloga

Nie wiem czemu nie działają mi przerwania na komparatorze. Podpiąłem 2.5V na AIN1 i przycisk do 5V na AIN0. Dioda która ma świecić przy sprawdzaniu w pętli programu

if(bit_is_set(ACSR,ACO))
normalnie działa i zapala się jak wciskam przycisk. Ale druga dioda która ma gasnąć przy przerwaniu ISR(ANA COMP vect) w ogóle nie zmienia swojego stanu. Włączyłem przerwania na komparatorze i globalne to czego jeszcze brakuje?

ACSR |= (1<<ACIE);
interrupts();
#arduino #avr #atmega
  • 8
@Analityk: No dałem tam rezystor 10k do masy. Ale skoro zwykłe sprawdzanie stanu komparatora działa to problem leży chyba gdzieś w sofcie. Pierwsza dioda się zapala przy sprawdzaniu ACO, gdy wciskam przycisk i przerwanie powinno chyba też w tym momencie wystąpić, a mimo to nic sie nie dzieje.
@Atraktor: sam komparator może utrzymywać stan wywołujący przerwanie. Też się pałowałem, próbowałem robic przerwanie w xmega dla wyzwalania oscyloskopu. Guzik wyszło. Może jest to tak często wywoływane że wydaje ci się że brak reakcji. Dobrze by było jakoś zobaczyć napięcie i czy jest jakiś sygnał, ale to pewnie wewn komparator.
@Fox_Murder: ale tu wychodzi na to, że przerwanie nie wykonuje się nawet raz- w kodzie dałem po to ustawienie stanu diody na niski, czyli jeśli choć raz wystąpi przerwanie to dioda zgaśnie na stałe. A tu mi świeci cały czas. Podpiąłem 2 arduino i wgrałem na nie ten kod i efekt jest ten sam _