mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt enablen was passiert dabei???


Autor: Sandro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte vor etwa 2-3 monaten einen beitrag hier geschriben mit einem
interrupt problem. Hatte einen interrupt, der auf beide flanken einen
inputs kommen soll. habe dann jedoch festgestellt, dass dieser teils
mehr als eigentlich ausgelöst, teils weniger kam.

hatte nun wieder mal zeit und den fehler gefunden. hatte die bedinnung
ob er aktiviert, oder deaktiviert sein soll "dauernd" mit einer if
abgefragt, und dann das interrupt enable bit gesetzt oder geresetet,
obs nun gesetzt war oder nicht!
nun wenn nun das interrupt enable bit gesetzt ist, und ich gebe erneut
den befehl es zu setzen (entspechend viele male), kann es sein das
interrupts ignoriert, oder zusätzliche hinzugezaubert werden.

wieso das? erscheint mir sehr unlogisch... hatte schon mal jemand
dieses problem???

Autor: Sandro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
p.s. handelt sich um einen C167cr-lm

Autor: Sandro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
niemand?

Autor: Thomas Stütz (tstuetz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich dich richtig verstanden habe, hast du z.B:
im main() :

CC15IE=TRUE;
CC15IE=FALSE;

...

CC15IE=TRUE;
CC15IE=FALSE;

Durch Aufruf deiner Interruptroutine wird ja das CC15IR=FALSE;
Durch das wegsetzen und setzen "sieht" der Prozessor einen
Flankenwechsel wodurch wieder der Interrupt aufgerufen wird.

Ist völlig korrekt so.

Gruss

PS: kann Mann wunderbar dazu verwenden einen PEGEL-getriggerten
Interrupt an den C16x anzuschließen (der kennt ja nur
Flankengesteuerte).

Autor: Sandro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Stütz
ne stimmt nicht, habs wohl zu ungenau erklärt....

eher:
CC15IE = TRUE

und kurz darauf

CC15IE = TRUE

wird nirends FALSE gesetzt...

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.