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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jens-Peter T. (jenspeter_t)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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 Jens-Peter T. (jenspeter_t)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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 Jens-Peter T. (jenspeter_t)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Ich habs nach einiger Fummelei geschafft, sowohl Overflow-Interrupt als 
auch CCx Compare-Interrupts funktionieren!

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.