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
Lesezeichen