STM32 Encoder: Wert pro um Drehung neu setzen?

Gast #4314609
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"
Gast #4314633
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.
Gast #4314643
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 :-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.