Hi Leutz, ich habe ein Testsystem gebastelt mit einer DCF Uhr und LCD auf einem Mega32. Das ganze funktioniert alles soweit. Rauskommen soll dabei mal eine Heizungs-Zusatzsteuerung für Holzvergaser/Solar. Das ganze wird in C realisiert. Nun frag ich mich wie ich am besten periodische Vorgänge z. B. im Minutenbereich auf dem AVR realisiere. Zum Beispiel möchte alle 5 Minuten die Außentemperatur messen, oder alle 2 Minuten die Tempertur im Pufferspeicher ermitteln. In drei Variablen hab ich ja Stunden, Minuten und Sekunden von der DCF Uhr. Nun könnt ich ja in einer Schleife diese Variablen auf die entsprechenden Änderungen prüfen - gefällt mir aber gar nicht. Kann man bei Änderung eines Variableninhalts ein Ereignis auslösen (lassen)? Gibts da nen anderen Ansatz? Wie würdet ihr das realisieren? Gruß - Markus
if (uptime() - letzte_messung >= 2 Stunden) { neue Messung letzte_messung = uptime(); }
@Andreas: Kannst du das mir das mal ausdeutschen? Ich brauch auch keinen fertigen Code, mir reicht die theoretische Ausführung wie du das machen würdest. @Peter: Danke für den Link, kannte ich noch nicht. Werd ich mir heut abend mal ansehen bzw. testen. Markus
Markus _neu wrote: > @Andreas: Kannst du das mir das mal ausdeutschen? Ich brauch auch keinen > fertigen Code, mir reicht die theoretische Ausführung wie du das machen > würdest. Das ist im Prinzip genau das, was du in deinem Eröffnungsposting angedeutet hast. Du vergleichst ständig den Zeitpunkt der letzten Messung mit der aktuellen Uhrzeit. Ist die Messung länger als x Zeiteinheiten zurück, machst du eine neue Messung und merkst dir den aktuellen Zeitpunkt als den Zeitpunkt der letzten Messung. So wie du das auch im täglichen Leben machen würdest. Die Klofrau schreibt auf den Zettel an der Tür, wann sie zuletzt da war. Der Manager geht regelmässig alle Klos durch und sieht nach, ob die Klofrau schon länger als 2 Stunden nicht da war. Dazu benutzt er seine Armbanduhr die die aktuelle Zeit anzeigt. Ist die letzte Reinigung schon länger als 2 Stunden her, dann scheucht er sie hinein. Die macht sauber und notiert den Zeitpunkt wieder am Zettel. etc. etc. Der einzige Unterschied: Dein 'Manager' kann in einer Sekunde mehrere Tausend Klos ein paar hundert mal durchsehen. Man kann sich aus dem täglichen Leben eine Menge abschauen, wie Dinge gemacht werden :-) Man kann das ganze auch umgekehrt machen: Die Klofrau schreibt auf den Zettel, wann sie das nächste mal Putzen kommen müsste und der Manager benachrichtigt sie gegebenenfalls auf seinem Rundgang, dass es an der Zeit wäre ...
Da wo Du die Minuten zählst, kannst Du noch eine weitere globale Variable hochzählen lassen. In der Hauptschleife prüfst Du ob diese Variable schon >= 5 ist. Wenn ja, setzt Du die Variable auf 0 und erledigst Deinen 5 Minuten Job.
Danke Karl Heinz, für das "schöne" Beispiel. Ich werd mir die Manager-Sache mal durch den Kopf gehen lassen ;) ! @Frank: Hört sich auch nicht schlecht, vor allem weil es ohne viel zusätzlichen Code umzusetzen ist, das meiste ist ja schon vorhanden. Markus
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.