Zitat Zitat von Rabenauge Beitrag anzeigen
Ich mach alles in Zeitscheiben: es läuft ein simpler Timer (nach dem Beispielprogramm BlinkWithoutDelay), der mir, beispielsweise, jede Sekunde einen Tick gibt. Diese Ticks werden gezählt, so lange, wie ich halt Aufgaben zu vergeben habe, und bei jeder Tick-Zahl wird eine Aufgabe erledigt.
Danach wird der Tick-Zähler zurückgesetzt, und der ganze Zyklus geht von vorne los.
Ich benutze zwar keine Arduino, mach das aber nach dem gleichen Konzept. Ich hab einen Timerinterrupt so im Bereich von 5 bis 10ms. Da werden dann die Softwaretimer bedient. Als nächstes kommen die Taster und Drehencoder dran und werden entprellt. Und dann kommt der Tick-Zähler. Manchmal packe ich auch den ADC da mit rein. Bei Tick 1 Kanal setzen und ADC starten, bei 2 ist der typisch ohne Wartezeit fertig. Also auslesen, nächsten Kanal einstellen und starten.

MfG Klebwax