Ich wurde schon ganz oft danach gefragt, warum die Drehrichtung des Drehencoders sich genau invers zu dem verhält, was man erwarten würde. D.h. man dreht im Uhrzeigersinn und würde eigentlich erwarten, dass dies die Aktion „lauter“ auslöst; stattdessen passiert jedoch das Gegenteil. Der Grund dafür ist, dass es die Library des Drehencoders so ausgibt und ich es einfach 1:1 übernommen habe. Hätte ich vielleicht gleich ändern sollen
Wie auch immer: Wollte man das umkehren, so gab es bisher zwei Lösungen:
a) DT / CLK in settings-%board%.h tauschen (Softwarelösung)
b) DT / CLK am Drehencoders verdreht anlöten (Hardwarelösung)
Um das Ganze etwas sauberer zu haben, habe ich, sozusagen als Variante c, nun die Direktive REVERSE_ROTARY
eingeführt. Ist diese aktiv, dann wird die Drehrichtung umgekehrt. Da viele Benutzer Änderungen wie a oder b durchgeführt haben, habe ich es nicht per Standard aktiviert, um niemand zu überraschen. Letztlich macht diese Variante das Gleiche, was auch die Variante a macht - allerdings intern gekapselt.
Jaja, ich höre schon ganz viele Leute „NA ENDLICH!“ sagen .
Es gibt übrigens auch einen Drehencoder, den ich designed habe. Mit dem hat man nicht nur das Problem mit der Drehrichtung nicht, sondern der Zusammenbau ist auch (ggf.) einfacher.