Hallo zusammen. Ich hab ein Programm geschrieben was unter anderem zwei Interrupts(INT0,INT1) benutzt. Das Programm läuft auch wie es soll durch. Ich kann das ganze Programm im Debugger oder auch in meiner Schaltung einmal durchspielen, aber eben nur EINMAL. Ich spring zwar nach der 2ten ISR wieder zum Anfang des Programms und der PIC initialisiert sich neu um wieder von vorn beginnen zu können, aber der Interrupt(INT0) läst sich nicht ein 2tes mal auslösen. Ich weiß zum verrecken nicht woran das liegt. Bin um jede Antwort dankbar. Freundlicher Gruß Florian
Hi. Ich kenne mich mit PIC´s nicht aus aber bei meinem Mega 2560 war es so dass ich return am ende des interrupts einbinden musste. Frag mich nicht warum. Der Prozessor Sprang nähmlich durch die gegend, ich nehme an stack probleme. rufst du in deinen Interrupst andere funktionen auf? ps: Bischen quellcode von dir würde sicher zu mehr antworten führen.
Hi, 1: Ja, ich Springe immer schön mit "refie" aus meinen Interrupts wieder raus! 2: Den Quellcode hab ich doch oben angehangen! ;-)
Florian Weiß wrote: > Hi, > > 1: Ja, ich Springe immer schön mit "refie" aus meinen Interrupts wieder > raus! Dann versuch mal das Interrupt flag register manuell zurückzusetzen am ende des interrupts. in ATmega so : EIFR = EIFR & 0x03; //binär 00000011 für Ex.Int. 1 und Ex.Int. 2 am ende der beiden interrupts. > 2: Den Quellcode hab ich doch oben angehangen! ;-) Leider sehe ich da nix :-(
jetzt aber :-) Und die Interrupt-Flags setze ich in jedem Interrupt manuell zurück!
Florian Weiß wrote: > Hat sich alles geklärt!!!! > > :-) Würdest du vielleicht trotzdem so gut sein und die Fehlerursache posten?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.