Hallo, ich suche nach einer Möglichkeit einen Interrupt auszulösen, wenn TCCO seinen CNT-Wert um 1 hochzählt. TCCO ist am quadrature decoden gemäß AppNote 1600. Es ist ein AtxMega64A3U.
Jens-Peter T. schrieb: > Hallo, > ich suche nach einer Möglichkeit einen Interrupt auszulösen, wenn TCCO > seinen CNT-Wert um 1 hochzählt. Wozu soll das gut sein? > TCCO ist am quadrature decoden gemäß AppNote 1600. Dann kann man ggf. mit dem Event des Dekoders was machen. Ist aber trotzdem sinnlos. Der Witz eines Hardwaredekoders für einen Drehgeber ist ja, daß er die CPU entlastet und eben NICHT für jeden Schritt eine Aktion der CPU erfordert. Diese muss den Zähler nur oft genug auslesen, um einen Überlauf zu vermeiden. Das ist aber bei einem 16 Bit Zähler eher langsam. Wenn du, warum auch immer, jeden Schritt des Drehgebers der CPU mitteilen möchtest, kannst du das auch gleich rein in Software per Timer-Interrupt machen.
Und wenn ich beispielsweise alle 100 Inkremente etwas auslösen möchte, aber den Timer am Quad weiterzählen lassen will?
Man könnte versuchen, beim Zählerstand 100 einen Compare-Interrupt auszulösen. Dort kann man dann den Compare Wert um 100 erhöhen.
Ist es nicht so, dass ein Timer entweder Compare oder Capture kann? Im QDEC läuft der Timer doch im Capture oder nicht?
Jens-Peter T. schrieb: > Ist es nicht so, dass ein Timer entweder Compare oder Capture kann? Nö, der kann beides gleichzeitg. > Im > QDEC läuft der Timer doch im Capture oder nicht? Weiß ich nicht genau, hab ich noch nie benutzt. Ich bin trotzdem optimistisch, daß das funktionieren kann. Hmmm, müßte mal mein olles ATXmega Evalboard rauskramen.
Jens-Peter T. schrieb: > Ist es nicht so, dass ein Timer entweder Compare oder Capture kann? Im > QDEC läuft der Timer doch im Capture oder nicht? Das bezweifle ich. Der Timer erhält m.E. vom Eventsystem bei jedem neuen Encoder-Inkrement ein Up/Down-Signal und einen Taktpuls. Grüßle Volker
Ich habs nach einiger Fummelei geschafft, sowohl Overflow-Interrupt als auch CCx Compare-Interrupts funktionieren!
:
Bearbeitet durch User
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.