Forum: Mikrocontroller und Digitale Elektronik Interrupt wenn Timer hochzählt xMega


von Hugo H. (jenspeter_t)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

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.

von Hugo H. (jenspeter_t)


Lesenswert?

Und wenn ich beispielsweise alle 100 Inkremente etwas auslösen möchte, 
aber den Timer am Quad weiterzählen lassen will?

von Falk B. (falk)


Lesenswert?

Man könnte versuchen, beim Zählerstand 100 einen Compare-Interrupt 
auszulösen. Dort kann man dann den Compare Wert um 100 erhöhen.

von Hugo H. (jenspeter_t)


Lesenswert?

Ist es nicht so, dass ein Timer entweder Compare oder Capture kann? Im 
QDEC läuft der Timer doch im Capture oder nicht?

von Falk B. (falk)


Lesenswert?

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.

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

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
Noch kein Account? Hier anmelden.