www.mikrocontroller.net

Forum: Compiler & IDEs (Dieser Beitrag wurde geloescht)


Autor: (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Dieser Beitrag wurde geloescht)

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn man weis was man tut ists sicher kein prob.. das flag bleibt ja
erhalten und wenn du die ints wieder einschaltest wird der int dann
auch abgearbeitet...

sollte zumindest ;)

probs seh ich nur wenn du in der isr auf nen ander int warten
solltest... das gäbe dann einen schönen deadlock ;)

73

Autor: Winfried Jaeckel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ricolaaaaaa!



Genau zu diesem Zweck wurde es erfunden, um Nestys durch Mehrfach-IRQ
zu unterbinden!
Es ist der ursprüngliche Sinn dieser Einrichtung. Ich gratuliere zur
Entdeckung.

Die ISR sollte selber auch nur ein Flag setzen, welches bei Prüfung
durch das Hauptprogramm in eine entsprechende Sub verzweigt. Diese
sollte nach Abarbeitung des Jobs das Flag zurücksetzen und den IRQ
wiederfreigeben bevor sie zu Main zurückkehrt.

Autor: (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Dieser Beitrag wurde geloescht)

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
huch es geht also nicht nur mir manchmal so,dass ich nicht immer genau
weis was ich tue ;)

seh ich das richtig was du vor hast...

controller schläft... böser int weckt controller auf und schaltet sich
selbst "ab"... controller murkst herum und bevor er wieder schlafen
geht schaltet er den int wieder ein....

jo das haut schon hin ;)

73

Autor: (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Dieser Beitrag wurde geloescht)

Autor: Werner Hoch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Interrupts in ISRs werden automatisch gesperrt.
Will man verschachtelte Interrupts benutzen, so muß man das Interrupt
Flag in der ISR aktiv einschalten.

Quelle: Atmega16, S. 11 ff

http://www.atmel.com/dyn/resources/prod_documents/...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Interrupts in ISRs werden automatisch gesperrt.

Er möchte den Interrupt aber auch nach dem Ende der ISR noch
deaktiviert haben.  Das ist gerade für den (an sich unsinnigen) Fall
eines Tasters, der einen Extern-Interrupt auslöst, praktisch sogar
unabdingbar.  Normalerweise pollt man Taster lieber in der Timer-ISR
(und entprellt sie dort), der Extern-Interrupt hat lediglich für den
hier skizzierten Fall Sinn, dass man mit dem Taster den Prozessor aus
dem Schlaf aufwachen lassen möchte.

Autor: Werner Hoch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, jetzt hab ichs verstanden.
Dann würd ich aber auch das Aufwecken und die Entprellung trennen.
Aufwecken über Interrupt und anschließen pollen.

Autor: (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Dieser Beitrag wurde geloescht)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Guido

"Warum pollen wenn ich doch durch den INT definitiv weiß, das der
Taster
gedrückt wurde?"


Weil Du es eben definitiv nicht weißt, ob wirklich das Drücken den
Interrupt ausgelöst hat oder das Reiben mit dem Pullover auf der
Tischplatte oder sonstige elektrostatische Entladungen.


Alle Impulse größer 50ns können einen Interrupt auslösen.


Peter

Autor: (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Dieser Beitrag wurde geloescht)

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.