-
-
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....
-
Erfahrener Benutzer
Robotik Einstein
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.
-
Erfahrener Benutzer
Robotik Einstein
ein einsatzfall für den timer-interrupt!
ich guck grad mal wie das genau zu schreiben ist... steht alles in der hilfe...
-
Erfahrener Benutzer
Robotik Einstein
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/ze...929&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....
-
Erfahrener Benutzer
Roboter Genie
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
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen