mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt PIC18f242


Autor: Florian Weiß (Firma: HellaKG) (fl0wnage)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Der Grosse (jonnyk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Florian Weiß (Firma: HellaKG) (fl0wnage)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

1: Ja, ich Springe immer schön mit "refie" aus meinen Interrupts wieder 
raus!

2: Den Quellcode hab ich doch oben angehangen! ;-)

Autor: Der Grosse (jonnyk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :-(

Autor: Florian Weiß (Firma: HellaKG) (fl0wnage)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
jetzt aber :-)


Und die Interrupt-Flags setze ich in jedem Interrupt manuell zurück!

Autor: Florian Weiß (Firma: HellaKG) (fl0wnage)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich alles geklärt!!!!

:-)

Autor: Der Micha (steinadler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian Weiß wrote:
> Hat sich alles geklärt!!!!
>
> :-)

Würdest du vielleicht trotzdem so gut sein und die Fehlerursache posten?

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was bitte ist eine 'Schwuckele' ?????

Sven

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.