16Bit Timer/Counter dekrementieren

Gast #164641
Lesenswert?

Hallo

Ich ich möchte mit einem AVR uP(AT90CAN128) einen Inkrementalgeber
auswerten und muss zu diesem Zweck den 16 Bit Timer/Counter bei
Drehrichtungswechsel auf dekrementiern umschalten. Das Hinaufzählen und
bei 360° auf Null zu setzen ist kein Problem. Nur habe ich noch nicht
herausgefunden wie ich die Richtung änderen kann. Im PWM Mode macht er
das ja automatisch.

Jetzt schon vielen Dank
Gast #164644
Lesenswert?

Das geht nicht mit den Timern.

Du must die Phasenwechsel in Software auswerten, z.B.:

http://www.mikrocontroller.net/forum/read-4-37992.html#new

Das hat sogar den Vorteil, daß automatisch entprellt wird.
Auch können mehrere Encoder angeschaltet werden.

Die PID-Regelung kann ja einfach die Interrupts wieder freigeben, damit
im Hintergrund die Encoder ausgelesen werden. Also kein Problem.


Ich nehme für solche komplexeren Aufgaben allerdings immer MCs mit
mindestens 2..4 Interruptprioritäten (8051).


Peter
Gast #164645
Lesenswert?

Ich habe auf dem uP nur noch ein Clock und Richtugnssignal (externe
Encoderauswertung) und da wäre es am einfachsten mit Timern zu
arbeiten. Aber wenn man den nicht auf dekrementieren umschalten kann,
muss ich mir wohl eine andere Lösung einfallen lassen. Ich verstehe
aber nicht ganz wiso AVR diese einfache Funktionalität nicht eingebaut
hat.

Besten Dank.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren