sorry, da müsste ich erstmal selber was probieren, hab keinen plan wie man auf die schnelle bei arduino nen timer hinbastelt
sorry, da müsste ich erstmal selber was probieren, hab keinen plan wie man auf die schnelle bei arduino nen timer hinbastelt
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
völlig, nur irgend eine Zeitreferenz
soll natürlich jeweils für jeden sleep dann sleep1 sleep2 und sleep3 heißen damit man weis welcher gerade ausgegeben wirdCode:uint64_t vorher, nachher; //ich nehme einfach mal an dass millis uint64 ist vorher= millis(); std::this_thread::sleep_for(one_sec); nachher = millis; Serial.println("sleep1:"); Serial.println(vorher); Serial.println(nachher); Serial.println(millis);
meine Vermutung ist, dass zwischen vorher und nachher immer rund 1000 Differenz ist, aber der 3te Wert zwischen den Sleeps vorwärts und rückwärts springt
oder, da wir neuen Code reinbringen, der counter plötzlich anfängt richtig zu zählen weil wir die racing condition brechen
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
danke,
und wie jetzt wo hin kopiert?
jeweils um die 3 Zeilen mit
"std::this_thread::sleep_for(one_sec);"
herum nur eben für jede ein anderes "sleep1" "sleep2" "sleep3"
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
sei doch bitte so nett und schreib das mal komplett als thread, nicht dass ich es falsch versteh und dann nur Mist raus
kommt.
ich habe mal noch explizit die Variablen getrennt um irgendwelche Phänomene auszuschließenCode:void counter_loop() { static thread_local uint32_t counter = 0; thread_local uint64_t vorher1, nachher1; while(true) { Serial.print("counter_loop: "); Serial.println(counter); vorher1 = millis(); std::this_thread::sleep_for(one_sec); nachher1 = millis(); println("Sleep1:"); println(vorher1); println(nachher1); println(millis()); } } void blinker_loop() { static thread_local uint32_t counter = 0; thread_local uint64_t vorher2, nachher2, vorher3, nachher3; while(true) { digitalWrite(LED_BUILTIN, HIGH); Serial.print("blinker_loop (HIGH) counter: "); Serial.println(counter); vorher2 = millis(); std::this_thread::sleep_for(one_sec); nachher2 = millis(); println("Sleep2:"); println(vorher2); println(nachher2); println(millis()); digitalWrite(LED_BUILTIN, LOW); Serial.print("blinker_loop (LOW) counter: "); Serial.println(counter); vorher3 = millis(); std::this_thread::sleep_for(one_sec); nachher3 = millis(); println("Sleep3:"); println(vorher3); println(nachher3); println(millis()); } }
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Lesezeichen