Zurück (C) Christof Ermer, Regensburg


26.02.2013
04.10.2017
08.22

Mal zum Ausprobieren:  Dieter Schuh's Encoder Code

Dreh-Encoder oder Dreh-Impulsgeber   
Eagle : piher.lbr      switch-apls.lbr -_>

ALPS_EC12E_SW

ALPS rotary encoder


Guter Artikel:  http://www.mikrocontroller.net/articles/Drehgeber


STEC12E07  = ohne Taster


Es gibt keine "nur die ist Gut" Lösung, wie das Programmiert wird, aber die Signalverarbeitung sollte möglichst interrupt gesteuert-beteiligt ablaufen, so das nicht unnötig CPU Zeit verschwendet wird.
Kein Polling sinnvoll, ! da unpräzise und unspontan.
Lösung 1.  Signal A löst mit JEDEM Flankenwechsel einen Interrupt aus.
 Signal B wird im Signal-Interrupt gemessen und mit Signal A verglichen... somit die Richtung festgestellt,
                Nachteil. Entprellen kostet Zeit  und Auflösung ist nicht optimal ( ...sagt man )
Gedanke zur Lösung:  Zustand "vorher" Speichern, um dann bei Signalwechsel ( nach Entprellen ) entscheiden zu können  WIE die "neue" Siutation ist, (dann Situation wieder speichern )

Zuerst ein paar Signaldiagramme:  

beachte:  Prellender Drehgeber    


Links -Rechts Kennung:
   oder ausführlicher


anderer Lösungsansatz aus ASM Projekt . geklaut...


....Hat mir jemand gesendet:
Hier ist ein Trick, mit dem Sie einen oder mehrere Drehgeber an einen Mikrocontroller anschließen können, während Sie nur einen Analogeingang verwenden.

    aus Elektor Aug. 2022.