ISR wird nicht aufgerufen trotz erkennen eines Interrupts

OP #2757451
So Hier mein Programm: Ich wäre euch sehr dankbar, wenn Ihr einen Fehler 
findet, da ich nach langem Ausprobieren mit meinem Latein am Ende bin 
:-(.
Der Interrupt wird Zwar im GIFR angezeigt aber die ISR wird nicht 
bearbeitet.


#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#ifndef F_CPU
    #define F_CPU 1000000UL
#endif


uint8_t cnt = 0;      // Global für Kommunikation ISR / main


//Interrupt Taster INT0

  ISR(INT0_vekt)
{
  if(cnt==9)
    cnt=0;
    else
    cnt++;


}

int main (void) {


  uint8_t LEDs[10] = 
{0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B};
  DDRA = 0x7F;
  MCUCR|=(1<<ISC00);
  MCUCR&=~(1<<ISC01);
  GICR|=(1<<INT0)  ;
  sei();


  while (1) {

    PORTA = LEDs[cnt];


}


return (0);
}


Gruß hendschu
OP #2757608
Danke für die schnellen Antworten!! Habe es nun mit volatile versucht 
allerdings habe ich noch das gleiche Problem wie vorher auch. Durch das 
Volatile sind allerdings die 2 Warnungen weg gegangen die ich nicht 
deuten konnte( Sorry Jörg). Falls ihr noch eine andere Idee habt lasst 
es mich wissen :-)
Gast #2758491
Anton B. schrieb:
> Der Interrupt wird Zwar im GIFR angezeigt aber die ISR wird nicht
> bearbeitet.

Bist Du sicher, daß die ISR nicht bearbeitet wird?

Es gibt mehrere Möglichkeiten, was schief gehen kann:
1. MCU geht nicht die ISR (z.B. wegen falscher Vektorangabe).
2. MCU geht in die ISR, aber nicht mehr heraus (z.B. weil Requestflag 
nicht gelöscht wird).
3. Datenübergabe zwischen ISR und main() geht nicht (z.B. wegen 
fehlendem volatile).
Gast #2759093
die Warnung der Art "Vektor mit diesem Namen existiert nicht", führt 
schlicht dazu, daß die so definierte ISR nie ausgeführt wird. Nur wenn 
sie den richtigen Namen hat, wird sie nämlich statt "BADISR_vect" in die 
Vektor-Tabelle eingetragen, der einfach nach 0 springt (fast ein Reset).
Warnungen sollte man erst dann ignorieren, wenn man genau weiß, daß sie 
harmlos sind. Wer das genannt Problem hat, braucht da noch ein Weilchen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.