Im senären Zahlensystem kommen Ziffern größer 5 nicht vor. Also 19:10 bzw 191 ist wegen der 9 nicht möglich.
Um nur gültige Uhrzeiten mit den 3-stelligen Dezimalzahlen darzustellen, könnte man nach Encoderwert++ die letzte Ziffer in Encoderwert mit der modulo Funktion abfragen und falls sie größer 5 ist, zur 3-stelligen Zahl nochmals 4 addieren. Bzw nach Encoderwert-- eine 4 subtrahieren.
Pseudocode falls die dreistellige Zahl in Encoderwert steht:
Code:void Encoderread(){ if(digitalRead(2)!= digitalRead(3)) Encoderwert++; Rest = Encoderwert % 10 if Rest > 5 then Encoderwert = Encoderwert + 4 else Encoderwert--; Rest = Encoderwert % 10 if Rest > 5 then Encoderwert = Encoderwert - 4







Hoffentlich liegt das Ziel auch am Weg
Zitieren

Lesezeichen