T
Thomas Mozgan
Guest
Georg Meister schrieb:
Um aehnliche Denk-, Konzept- oder Programmierfheler zu vermeiden.
Vielleicht ein Fehler in der Interrupt Sense Control des ext. Interrupt.
Bei "low level" es dann ein Interrupt nach dem anderen.
* the main program and execute one more instruction before any
* pending interrupt is served.
(ATMega16 Manual, Seite 12)
* The instruction following SEI will be executed before any pending
* interrupts.
(AVR Instruction Set Manual)
Nach RETI und SEI wird ein Befehl ausgefuehrt.
Hab schon Code (zu Demozwecken) von ein Singlestep-ISR gesehn.
(level gesteuerter externer Interrupt mit serieller Ausgabe der Register)
Am Beginn der ISR setze ich einen unbenutzen IO-Pin auf High und am
Ende wieder auf Low. So kann ich Haeufigkeit und Dauer kontrollieren.
servus thomas
Ť
--
Die 4. Österreichische Fan-Convention zum Thema Japanische Popkultur
** AniNite 2004 ** 20.-22.August 2004 ** http://www.aninite.at/ **
Anime & Manga * J-Pop Bar * Cosplay * Videogames * Go * DDR * AMV *
Manga Workshop * Quiz * Trading Cards * Vortraege * Origami * Kyudo *
Das Nichtfunktionieren interressiert mich auch.Allerdings kann ich mir das Nichtfunktionieren der bisher diskutierten
Vorschläge nur erklären wenn deine CAN-Interruptroutine tatsächlich viel
länger dauert als angegeben. Das ist wahrscheinlich auch der Grund warum
bei dir der Vorschlag von Thomas nicht funktioniert hat.
Um aehnliche Denk-, Konzept- oder Programmierfheler zu vermeiden.
Vielleicht ein Fehler in der Interrupt Sense Control des ext. Interrupt.
Bei "low level" es dann ein Interrupt nach dem anderen.
* When the AVR exits from an interrupt, it will always return toWenn du ein SEI machst, werden sämtliche offenen Interrupts in der
Reihenfolge ihrer Priorität abgearbeitet bevor das Hauptprogramm auch
nur einen Befehl weiterläuft.
* the main program and execute one more instruction before any
* pending interrupt is served.
(ATMega16 Manual, Seite 12)
* The instruction following SEI will be executed before any pending
* interrupts.
(AVR Instruction Set Manual)
Nach RETI und SEI wird ein Befehl ausgefuehrt.
Hab schon Code (zu Demozwecken) von ein Singlestep-ISR gesehn.
(level gesteuerter externer Interrupt mit serieller Ausgabe der Register)
Ich habe Interrupts gerne mit dem Oszi kontrolliert.Ich würde mir das Ganze noch etwas anschauen. Wenn meine Vermutung stimmt,
würde nämlich der Timerinterrupt ab und zu blockiert werden und dann hinkt
deine Systemzeit etwas hinterher.
Am Beginn der ISR setze ich einen unbenutzen IO-Pin auf High und am
Ende wieder auf Low. So kann ich Haeufigkeit und Dauer kontrollieren.
servus thomas
Ť
--
Die 4. Österreichische Fan-Convention zum Thema Japanische Popkultur
** AniNite 2004 ** 20.-22.August 2004 ** http://www.aninite.at/ **
Anime & Manga * J-Pop Bar * Cosplay * Videogames * Go * DDR * AMV *
Manga Workshop * Quiz * Trading Cards * Vortraege * Origami * Kyudo *