Hallo Leute! Angenommen, man möchte mit einem AVR-Controller (beispielsweise ATmega8 oder ATmega16) eine Schaltuhr bauen, welche pro Tag (!) nur etwa 1 Minute den angeschlossenen Verbraucher eingeschaltet und anschließend wieder ausgeschaltet...wie bewerkstelligt man sowas mit einem Mikrocontroller? Die Frage ist einfach, wie man eine (für den Controller) solche "Ewigkeit" für den Controller realisiert? Die erste Überlegung ging natürlich daran, in einer Variablen die Overflows eines Timers zu zählen ;-) Dass durch diese Art aber bereits schon das "warten" von wenigen Sekunden vom Compiler wegoptimiert wird, weiß ich auch. Gruß
atMehl schrieb: > Minute den angeschlossenen Verbraucher eingeschaltet und anschließend > wieder ausgeschaltet...wie bewerkstelligt man sowas mit einem > Mikrocontroller? Genauso wie man das auch mit einer Uhr macht: Sekunden zählen. Nach 60 Sekunden ist 1 Minute um. Nach 60 Minuten 1 Stunde. Und nach 24 Stunden ist ein Tag um. > Die erste Überlegung ging natürlich daran, in einer Variablen die > Overflows eines Timers zu zählen ;-) > Dass durch diese Art aber bereits schon das "warten" von wenigen > Sekunden vom Compiler wegoptimiert wird, weiß ich auch. Warum soll das wegoptimiert werden? Der Compiler kann ja nicht einfach eigenmächtig Berechnungen, die benötigt werden rausschmeissen.
Vielleicht reicht es da auch den uC nur mit einem Uhrenquarz zu betreiben anstatt im MHz-Bereich? Hätte auch Stromsparende Vorteile...
Muss jetzt schon wieder mal vorgerechnet werden, wieviele Jahrmillionen
man braucht bis eine uint64 Variable überläuft wenn man sie jede Sekunde
inkrementiert? Das hatten wir doch schonmal.
Nein es wird nichts wegoptimiert, nein du wirst es nicht mehr erleben,
nein die Sonne wohl auch nicht.
>Wobei dann wahrscheinlich der Fehler größer wird, oder?
Und WARUM zur Hölle sollte das so sein? Die Dinger nennt man
"Uhrenquarz" denk mal drüber nach...
gruß cyblord
Warum hier im verdammten Forum immer so verdammt übel rumgeflucht wird, frage ich mich manchmal, verdammt ;)
Nils S. schrieb: > Warum hier im verdammten Forum immer so verdammt übel rumgeflucht wird, > frage ich mich manchmal, verdammt ;) Evt. weil die Fragen so doof sind, zum Deubel noch mal!
cyblord ---- schrieb: > Und WARUM zur Hölle sollte das so sein? Die Dinger nennt man > "Uhrenquarz" denk mal drüber nach... Weil wenn man nur ein Digit an Fehler hat 1/32kHz eben größer ist als 1/16MHz! Nebenbei ist die Auflösung geringer, also macht man automatisch einen Fehler ;-)
> wie bewerkstelligt man sowas mit einem Mikrocontroller?
In dem man ihn programmiert.
Wenn man damit Schwierigkeiten hat, das erst erlernen muß und noch nicht
mal die Grundkonzepte versteht, und die Zeiten nicht ändern muß, dann
kann man das auch mit einem fertigem ICs aufbauen:
Der CD4536 erlaubt es, den Takt mit einer
Widerstand/Kondensator-Kombination vorzugeben und die Impulszeitdauer
mit einem Kondensator zu bestimmen, also reicht ein einzelner IC, so
lange es nicht quatzstabil sein muß denn 194,18 Hz Quartze sind schwer
beschaffbar :-) eher noch synchronisiert man den Chip an 50Hz
Netzfrequenz für 23:18:06
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.