Ich brauche Hilfe beim Zählen! Ehrlich jetzt!!
Ich erhalte meine Zahlenwerte ja aus der ISR mit dem Drehencoder erzeugt.
Variable:
volatile int Encoderwert;
setup:
attachInterrupt(digitalPinToInterrupt(2),Encoderre ad,CHANGE);
ISR:
Code:
void Encoderread(){
if(digitalRead(2)!= digitalRead(3))
Encoderwert++;
else Encoderwert--;
Was da rauskommt ist nun DEZIMAL.
Ich möchte aber eine Zeit im 10 Minuten Takt hoch und runter zählen lassen.
Statt 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, usw.
Also 10, 20, 30, 40, 50, 1:00, 1:10, 1:20, usw bis 23:50 vor- und rückwärts.
(Den Doppelpunkt und die letzte Null kann ich vor der Ausgabe im Display hinzufügen. Also 110, 120, 130, geht)
Kann ich das in der ISR direkt umrechnen lassen?
So etwas wie "if (Encoderwert==6) Encoderwert=10" geht nicht...
Im Netz gibt es haufenweise Online Rechner "dezimal<>senär" , aber es gibt immer nur die schriftliche Umrechnung in der
Schulversion davon. Wie macht man das beim Arduino am besten?
Geht das direkt in der ISR überhaupt?
Muss die Variable dann "nur "int" sein und nicht noch "volatile"?
Ich habe echt das Brett vorm Kopf. Ich denke auch (laut Mister Spok) nur zweidimensional, habe ich so den Verdacht.
Meine Sketche leben immer nur von "wenn, "dann". Auch wenn alles bis auf das zählen perfekt funktioniert.
Da fehlt mir die Grundausbildung auf dem Gebiet.
Lesezeichen