Forum: Mikrocontroller und Digitale Elektronik STM32 Encoder: Wert pro um Drehung neu setzen?


von Pepe (Gast)


Lesenswert?

Hallo.
Ich verwende den Timer2 bzw 5 eines STM32F4 im Encoder-Mode. 
Funktioniert so weit bisher. Hab am Encoder eine Rotationsachse dran.

Jede neue Fahrt wird direkt vom Host vorgegeben. Bisher rechnet der Host 
pro Umdrehung weiter, damit ich immer die Fahrt mit dem kürzesten Weg 
zur nächsten Zielposition habe. Dadurch wir die Zielposition immer 
größer.

Ich suche jetzt eine Lösung wie ich in jeder Umdrehung den Counter-Wert 
im Timer um 360° kürzen kann, damit der Wert nicht aus dem 360°-Bereich 
raus läuft.

Reset per Encoder Z geht nicht wirklich, weil ich nicht garantieren 
kann, dass der Index in der 0° Position der Achse kommt. Außerdem stell 
ich mir die Umstellung der Regelung "mitten in der Fahrt" interessant 
vor.

Hat schon jemand Erfahrung damit? Ich hab Bedenken, dass ich eine 
Differenz irgendwann rein bekommen, wenn ich den Timer-Counter ständig 
ändere und ich dadurch mal eine Encoder-Flanke "überhöre"

von m.n. (Gast)


Lesenswert?

Rechne Deine 360° doch einfach aus Zählerstand/Impulse pro Umdrehung aus 
(modulo). Das geht auf dem µC doch ns-schnell.

von Pepe (Gast)


Lesenswert?

Ja, schon. Mir's geht auch nicht ums Modulo. War mir klar. Ich hab nur 
Bedenken, dass ich einen Versatz rein bekomme, da die Achse ständig 
Stop-Go-Betrieb hat und ich ja bei jeder Umdrehung "begrenzen" müsste. 
Alles hab ich ca. 3x pro Sekunde die Chance, dass ich den Counter neu 
setze, wenn gerade eine Flanken vom Encoder kommt.

von m.n. (Gast)


Lesenswert?

Pepe schrieb:
> Alles hab ich ca. 3x pro Sekunde die Chance, dass ich den Counter neu
> setze, wenn gerade eine Flanken vom Encoder kommt.

Das verstehe ich zwar nicht, würde aber nie den Zähler löschen, sondern 
den aktuellen Zählerstand als Offset verrechnen. Alternativ könnte man 
ein internes Reset-Signal erzeugen.

Wie hoch ist den die Encoderfrequenz? Da gibt es doch geniale Routinen, 
die die Auswertung per Timer und Software machen :-)

von Pepe (Gast)


Lesenswert?

Danke. Hab's verstanden. Manchmal denk' ich zu kompliziert...
Was ich mir schon überlegt hatte, möchte ich jetzt besser nicht 
erwähnen...

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.