Hallo zusammen.
Nach 3 Jahren Programmierabstinenz beschäftige ich mich wieder der Arduino-Programierung. Mein Neueinstieg ist doch "zäher" als gedacht...
Folgend möchte ich einen kurzen Summerton (Tasten-Rückmeldung) als Funktion programmieren, ohne das der Programmfluss unterbrochen wird.
Die Funktion wird vom beliebigen Prg.ort aufgerufen und läuft 500ms.
Folgender code funktioniert nicht richtig;
+ Warum speichert die Var. StartZeit die falsche Zeit "0"?Code:void loop() { LEDumschalt(); SummerKurzON(); delay(1000); //Prog.ablauf unterbrochen [ms] } void SummerKurzON() { //Tasten-Quitierungston digitalWrite(Summer, 1); //Summer einschalten static unsigned long StartZeit = millis(); __TESTmarker__(millis()); //Anzeige nach erstem Durchlauf= 2451 // 2.Durchlauf= 3451 __TESTmarker__(StartZeit); //Anzeige nach erstem Durchlauf= 0 // 2.Durchlauf= 2451 if (millis() >= StartZeit + SummerZeitKurz) { //nach erreichen der Zeit, 500ms, Summer ausschalten digitalWrite(Summer, 0); StartZeit = millis(); __TESTmarker__(StartZeit); //Anzeige nach erstem Durchlauf= 2451 //2.Durchlauf= 3451 } }
+ Läuft millis() ab Programmstart oder erstem Funktionsaufruf?
+ Hat das mit dem static-Befehl zu tun?
+ Was mache ich hier grundlegend falsch?







 
			
			 
					
					
					
						 Zitieren
Zitieren 
			

Lesezeichen