Hallo, ich verwende den ATmega3290p und dessen Timer0 und Timer1. Beide haben die gleichen prescaler-Einstellungen und bekommen jeweils auch den gleichen Wert für das Output Compare Register. Bei langsamer "Geschwindigkeit" kommen die Pulse/Interrupts sehr genau gleichzeitig. Übergebe ich jedoch "schnellere" Werte an die Output Compare Register, driften die Geschwindigkeiten, in der die Impulse ausgegeben werden sehr stark auseinander. Hat jemand schon ein ähnliches Problem gehabt? Außer den Einstellungen für den Prescaler und das Output Compare Register ist doch nichts weiter für die Pulsfolge einstellbar. Oder sehe ich das falsch?
Hans Wurst wrote: > Bei langsamer "Geschwindigkeit" kommen die Pulse/Interrupts sehr genau > gleichzeitig. Was ist denn "langsam"? Bitte mal etwas präziser! > Übergebe ich jedoch "schnellere" Werte an die Output > Compare Register, driften die Geschwindigkeiten, in der die Impulse > ausgegeben werden sehr stark auseinander. > Hat jemand schon ein ähnliches Problem gehabt? Außer den Einstellungen > für den Prescaler und das Output Compare Register ist doch nichts weiter > für die Pulsfolge einstellbar. Oder sehe ich das falsch? Code? Glaskugel ist in Reparatur. Aber wenn Du Interrupts aktiv hast, ist es ja wohl klar, dass ab einer gewissen "Geschwindigkeit" was verloren geht, besonders dann, wenn beide Interrupts exakt gleichzeitig auftreten sollen...
Wie wäre es denn, wenn Du endlich mal erzählst, um welche Zeiten/Interrupt-Raten es hier geht? Noch mal frage ich nicht nach. Mit Deinem Codeschnipsel kann niemand wirklich was anfangen, weil die ganzen Variablen und deren Funktion sowie der gesamte Kontext unbekannt sind. Warum setzt Du Deine Steuerregister eigentlich im Oktalformat? Erstens ist das generell für 8-Bit-Register ziemlich ungeschickt (Hexadezimal wäre passender) und zweitens sollte man bei Steuerregistern generell die vordefinierten Bitnamen benutzen, damit man auch ohne Datenblatt sieht, was da gemacht wird! Und zum Thema Interrupts bieten die Tutorials auf dieser Seite eigentlich genügend Informationen. Auch ein Blick ins Datenblatt schadet nicht. Interrupts gehen nur dann "verloren", wenn während einer Sperrphase (also z.B. während eines anderen Interrupt Handlers) mehrere gleiche Interrupt-Requests auftreten.
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.