Archiv verlassen und diese Seite im Standarddesign anzeigen : Internen Interrupt alle x Sekunden auslösen
Bin gerade dabei ein Programm für mein 2313 zu schreiben.
Brauche dafür noch einen Blink-Bit. Dies wollte ich mit einem internen Interrupt realisieren. Jede halbe Sekunde soll der Interrupt ausgelöst werden, der dann ein Bit in einer Variable toggelt.
Nur hab ich keine Ahnung, wie ich einen solchen Interrupt programmiere...
Hab bereits alles abgesucht, aber nix brauchbares gefunden.
help....
Wo hast du alles abgesucht?
Im Forum?
http://www.ckuehnel.ch/download.htm dort das Programm rnAVR.zip liefert dir auch schon ein fertigen Code für BASCOM. Dort musst du nur die Auslösefreuqenz (0,5Hz in deinem Fall) und Taktfreuqenz des AVRs einstellen. Mag sein, das du dafür den 16bit-Timer brauchst. Wenn's mit 8 bit nicht geht, wird es dir vom Programm aber gesagt.
ein einsatzfall für den timer-interrupt!
ich guck grad mal wie das genau zu schreiben ist... steht alles in der hilfe...
Also im Grunde musst du den Timer alle halbe Sekunde zum überlaufen bringen. Zur Berechnung der WErte ist das Tool, was MArco gepostet hat ganz sinnvoll, ansonsten hier nochmal ein Thread zum Thema 1Sekunden:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=71929&highlight=
MFG Moritz
OK, werde das bei Gelegenheit testen.
Habe @home zwar 2 AT90S2313, hab aber beide nun soweit hingerichtet, dass ich das Programm nicht mehr in den µC brennen kann...
Muss mir erst wieder neue bestellen....
BlueNature
06.04.2005, 00:45
Servus!
Ich habe das Problem auch gehabt um mir eine konstante Zeitbasis zu erstellen. Ich habe einfach einen Timerinterrupt ausgelöst der etwas länger dauert als die Zeit die ich eigentlich benötige. Dann im Timerinterrupt selbst nach seiner Auslösung gehe ich sofort im ersten Befehl her und führe eine Korrektur durch indem ich den Timer mit einer konstanten Zahl vorbelege. So kann ich den Timer geschickt justieren und habe auch die Möglichkeit über Zählung weitere Unterteilungen vorzunehmen zu weiteren Takten. Abgleich mit Oszi und einem freien Pin am AVR den ich einfach im Interrupt toggeln lasse bei jedem Interrupt. Flankenabstände sind dann mein Interrupt in seiner Ausführungsperiode.
Grüße Wolfgang
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.