-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delay im loop funktioniert nicht #4
Comments
Hallo @saewert, die Funktion for (;;) {
transmitter.send(...)
delay(100)
} |
Hallo, |
Hmm, ich werde mal schauen, ob ich das Problem reproduzieren kann... |
Hallo @saewert, ich habe ein Testsetup aufgebaut und ich kann das Problem nicht reproduzieren. Dabei ist mir ein kleiner Fehler in Ihrem Code aufgefallen. Das Array void loop() {
//Serial.println(" ");
char msg[11];
// delay(10000); // hier nicht möglich
memcpy(msg, "1234567890", sizeof(msg));
transmitter.send((byte *)msg, strlen(msg) + 1);
Serial.print(" gesendet: "); Serial.println (msg);
//delay(intervalSend); // funktioniert
myDelay(intervalSend); // funktioniert
transmitter.resend((byte *)msg, strlen(msg) + 1);
//Serial.println(" Resend: ");
/* Nach der Verzögerung 5 Sek wird das vorherige Paket erneut gesendet, um sicherzustellen,
dass es empfangen wird, und um Störungen während der ersten Übertragung zu
kompensieren.
*/
// delay(10000); // hier nicht möglich
} |
Hallo, |
Hallo, |
Hallo @saewert, Das void loop() {
//... setup code ...
// Ein Mal send aufrufen
transmitter.send((byte *)msg, strlen(msg) + 1);
// Gesamte Wartezeit in ms
int delay_ms = 10000;
while (delay_ms > 0) {
// Eine Sekunde schlafen
delay(1000);
delay_ms -= 1000;
// Jede Sekunde wachen wir auf und machen ein Resend um sicherzugehen, dass das Paket ankommt
transmitter.resend((byte *)msg, strlen(msg) + 1);
}
// ... restlicher Code ...
} Also grundsätzlich gibt es keinen Konflikt mit Gruß Andreas |
Hallo,
ich habe mit den beiden Funktionen einiges ausprobiert, die Verbindung ist wirklich gut.
Mir ist aufgefallen, das weitere delay() Aufrufe im loop() dazu führen, dass nicht gesendet wird.
Ich vermute mal, dass in der Library auch mit Interrupts und millis() gearbeitet wird und das zu Konflikten führt. Eine eigene Funktion myDelay ( ebenfalls mit millis() ) funktioniert, aber auch nur an der Stelle auch nur einmal zwischen transmitter.send() und transmitter.resend().
Beispiel anbei.
Gibt es eine Idee zur Lösung ?
Vielen Dank
getestet mit UNO und Nano
433-Sender-2-delay.txt
The text was updated successfully, but these errors were encountered: