Ungewollter Interrupt

OP #4414440
Lesenswert?
• ▲
▼
Hallo Zusammen

Ich programmiere zur Zeit auf einen xMega128A3U ein UART Slave 
Protokoll. Dafür arbeite ich logischer weise mit den RX und TX 
Interrupts. Beim Testen habe ich aber gemerkt das mein Main Programm 
nicht richtig durchgespielt wird. Somit habe ich die Interrupts Lokal 
alle deaktiviert. Und einen Zähler in mein Main gesetzt, zum zählen ob 
er nun durch`s Main fährt. Dies war aber nicht der Fall... :( Er geht 
genau 12 Mal durch mein while(1) danach bleibt er bei der schließenden 
Klammer hängen.
Wenn ich die Interrupts Global deaktiviere (cli()), arbeitet das 
Programm wie gewollt. Wenn ich sie aber Global aktiviere (sei()) (Wie 
oben erwähnt habe ich keine Lokale Freigabe mehr) oder auch wenn ich sie 
weder aktiviere noch deaktiviere, läuft er wieder 12 mal durch die 
Schleife und hängt dann wieder.

Im Datenblatt und Internet habe ich gesucht ob es Interrupts gibt die 
man nicht aktivieren muss. Wenn mich mein English nicht verarscht gibt 
es dies das aber nicht.

Hat jemand einen Vorschlag? Wäre froh um eure Ideen, mir gehen sie 
langsam aus ^^

Danke schon mal

keine Angaben
Gast #4414450
Lesenswert?
• ▲
▼
Hallo,

ich will nicht despektierlich wirken, aber wenn Du nun Antworten wir 
Zeile "42" oder "Glaskugel" erhältst, dann sollte man sich fragen - 
warum ?

Wenn wir in einer Projektgruppe Probleme besprechen müssen ALLE Fakten 
auf den Tisch.

Was sind also, oder könnten, die Fakten bei Dir sein ?
OP #4414871
Lesenswert?
• ▲
▼
Ich hab den Fehler gefunden. Lustiger weise war es kein Interrupt... Als 
ich eine Funktion in die while(1) Schleife gepackt habe hat es gefunzt. 
Wahrscheinlich hat mein Compiler die while(1) Wertoptimiert, da ich nur 
eine Variabel Inkrementiert habe die ich nie gebraucht habe. Warum er 
aber trotzdem 12 mal durch die Schleife gegangen ist, ist mir ein Rätsel 
^^
jedenfalls funktioniert es jetzt ^^

ja sorry habe vergessen den Code hochzuladen :O

Und nein ich arbeite nicht gerne mit dem ASF, schreibe meine Sachen 
lieber selber so finde ich die Fehler auch schneller, weil ich verstehe 
was ich schreibe ;)

Danke trotzdem :D
#4414906
Lesenswert?
• ▲
▼
Basil V. schrieb:
> Ich hab den Fehler gefunden.

Ach?

> Lustiger weise war es kein Interrupt... Als ich eine Funktion in die
> while(1) Schleife gepackt habe hat es gefunzt.
> Wahrscheinlich hat mein Compiler die while(1) Wertoptimiert, da ich nur
> eine Variabel Inkrementiert habe die ich nie gebraucht habe. Warum er
> aber trotzdem 12 mal durch die Schleife gegangen ist, ist mir ein Rätsel

Das ergibt keinen Sinn. Dein Fehler ist wahrscheinlich noch drin und 
macht sich nur gerade nicht bemerkbar. Und wenn die Schleife sonst 
nichts getan hat, woher weißt du dann das:

Basil V. schrieb:
> Er geht
> genau 12 Mal durch mein while(1) danach bleibt er bei der schließenden
> Klammer hängen.

> Und nein ich arbeite nicht gerne mit dem ASF,

Was ist ein "ASF"?

> schreibe meine Sachen lieber selber so finde ich die Fehler auch
> schneller, weil ich verstehe was ich schreibe ;)

Ich bin mir nicht sicher, dass du das wirklich schon verstanden hast.
#4415070
Lesenswert?
• ▲
▼
Hallo,

vielleicht sollte man die angesprochenen Frauen mal fragen...
Dieses ewige Anspielen auf Diskriminierung, Frauenquote und dutzende 
andere Sachen nervt nur und hilft wirklich Betroffenen überhaupt nicht.

Ist wie mit Winkelementen und Jahresendfigur mit Flügeln früher in der 
DDR.

Viel Gerede und am Ende passiert garnichts, was hilft.

Soll mir nur einer sagen, es gibt jetzt keine "Zensur im Kopf".

Gruß aus Berlin
Michael

Antwort schreiben

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.

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.