Hallo,
ich möchte 10x "U" ausgeben, danach die vorgegebene Pause machen und dann erst wieder 10x "U" usw.
Scheinbar liegt es an der UART. Die "U"s werden so schnell unabhängig von allen in den Puffer geschoben, dass die for schon fertig ist bevor das letzte U wirklich raus ist. Damit schlägt meine Verzögerungsvorgabe fehl. Die gilt damit leider für den gesamten Funktionsaufruf. Im Screenshot möchte ich die grüne Zeitdauer beeinflussen.
Gibt es dafür eine einfache Lösung?
Oder wäre die einfachste Lösung das ich die "serielle Ausgabezeit" einfach mit einrechnen muss und gut ist?
void setup() {
Serial1.begin(31250);
}
void loop() {
TaktSyncronisierung();
} // loop Ende
// ****** Funktionen ******* //
void TaktSyncronisierung ()
{
const unsigned int intervall = 3900; // Minimum 900µs
static unsigned long last_micros = 0;
if ( micros() - last_micros > intervall ) { // aller x[µs] wiederholen
for (int i=0; i<10; i++) {
Serial1.print('U'); // 100 Pegelwechsel
}
last_micros = micros();
}
}