Forum: Mikrocontroller und Digitale Elektronik Aktion nur einmal durchführen


von Marcel (Gast)


Lesenswert?

Hallo,
ich habe eine Frage zu meinem Sketch für einen Atmega328.
Der Atmega holt sich per Ethernet die aktuelle Uhrzeit und soll dann zu 
bestimmten Zeiten eine Aktion durchführen aber nur einmal!
Dies wäre z.B: zur vollen Stunde.
Ist das so ok? Oder wie könnte ich das eleganter lösen?
Ich habe den Teil entfernt wo sich der Atmega die Uhrzeit holt und 
umrechnet.
1
void setup() {
2
3
int stunde, minute, sekunde;         //Variablen initialisieren 
4
int flag = 0;
5
}
6
7
void loop() {
8
9
if ( minute == 59 && flag == 0){ 
10
flag = 1;
11
Serial.println( "alive");      
12
delay(10);
13
}
14
if ( minute != 59 && flag == 1){ 
15
flag = 0;
16
delay(10);
17
}
18
19
}

von Ralf G. (ralg)


Lesenswert?

Marcel schrieb:
> Oder wie könnte ich das eleganter lösen?

Kommt darauf an, was da mal später noch dazukommen soll...
In deinem speziellen Fall kann der Test auf 'flag==1' wegfallen. Die 
Delays ergeben keinen Sinn. Allerdings weißt nur du, was da noch 
Wichtiges fehlt.

von indent (Gast)


Lesenswert?

Marcel schrieb:
> Ist das so ok? Oder wie könnte ich das eleganter lösen?

Mir gefallen die Einrückungen nicht.

von Georg B. (diereinegier)


Lesenswert?

Vielleicht lieber mit Linux und dem cron-Dämon?

Netzwerken und über längere Zeit eine genaue Uhrzeit halten sind doch 
nun wirklich nicht die Königsdisziplinen des Arduino.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.