Hallo, vielleicht denke ich auch einfach zu kompliziert... Ich muß zu einem bestimmten Zeitpunkt eine Aktion auslösen. Also Lade ich den Zeitpunkt in das Compare-Register meines Timers und wenn der entsprechende Interrupt ausgelöst wird führe ich meine Aktion aus. Soweit so gut. Ich hab nun den Fall, daß ich den Zeitpunkt nicht genau bestimmen kann, ich muß ihn schätzen. Die Schätzung wird immer besser, je näher ich dem Ereignis komme. Die Schätzung kann aber sowohl zu früh, wie auch zu spät sein. Die Zeit die ich für das Schätzen brauche ist zudem nicht konstant. Es kann mir also passieren, das ich in der ersten Schätzung a + 100 Takte schätze und in der zweiten Schätzung a - 25 Takte. Wenn sich der Zähler nun beim Ändern des Compare-Registers im Bereich von a-25 bis a-100 Takte befindet, springe ich quasi über den Compare-Match hinaus und verpasse sowohl die "gute" wie die "schlechte" Schätzung . Kann ich das irgendwie verhindern? Controler ist ein AVR M32. Zähler ist der Timer1, erweitert auf 32bit. Der Zähler ist frei laufend, d.h. höherer Zählerstand heißt nicht, daß es auch "später" ist. Sprache ist BASCOM gemischt mit Assembler. Ich hab zudem auch noch andere Interrupts laufen, die nur kurz verzögert werden dürfen. Am besten garnicht. Am liebsten würde ich das daher realisieren ohne während der Überprüfung und Änderung die Interrupts komplett sperren zu müssen. Ich hoffe mein Problem ist klar geworden und jemand hat einen Tip dazu. Ciao, Werner
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.