www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wieviel Zeit ist verstrichen seit dem Ausschalten des µC


Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
wie kann ich herausfinden, wieviel Zeit seit dem Ausschalten des µC 
vergangen ist?

Autor: Kasperle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf die Uhr schauen?

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Name ist Programm, oder?

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RTC laufen lassen, mit Uhrenquartz als Schwingelement und Batterie oder 
Super-Cap als Energiequelle.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chricky schrieb:
> Dein Name ist Programm, oder?

Damit wollte er höflichst zu Ausdruck bringen, dass es ohne 
Informationen keine sinnvollen Antworten gibt.
:-)

Autor: Marcel F. (pho3n1x)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kasperle schrieb:
> Auf die Uhr schauen?

LOL

@Chricky:
Kannst du mal genauer beschreiben was du damit erreichen willst? Der uC 
selbst wird das nicht mehr so wirklich erreichen können, außer er 
speichert die Uhrzeit ab als er ausging und vergleicht diese mit einer 
RTC sobald er wieder aufgewacht ist. Du musst halt die Spannung lang 
genug "oben" halten damit der uC die Uhrzeit noch im EEPROM speichern 
kann.

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Simon Huwyler,
kannst Du das bitte für Anfänger (ich bin Programmierer) erklären?

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe An- Ausschalter mit Mehrfachfunktion

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hallo Simon Huwyler,
>kannst Du das bitte für Anfänger (ich bin Programmierer) erklären?

Du bist ein Witz, mehr nicht.

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo holger,
hab' ich Dir 'was getan?

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerne:

RTC = Real Time Clock. Das ist in der einfachsten Form ein Zähler mit 
einem Oszillator. Bei uCs kriegst Du das oft gratis dazu. Der Clou an 
der Sache: Du kannst die CPU ausschalten und nur noch diesen Zähler 
laufen lassen. Der ist üblicherweise über einen dedizierten 
Versorgungs-Pin gespeist und säuft sehr sehr sehr wenig Strom. Aber 
zumindest ein Schwingelement (Quartz) musst Du extern dranhängen. Auch 
über dedizierte Pins. Da eignet sich ein Uhrenquartz (2^15 Hz).

Jetzt musst Du nur noch vor, resp. nach dem Abschalten (kurz vor dem 
Koma des Prozis) den aktuellen Zählerstand in's Ram schreiben (das oder 
zumindest ein Teil davon ist bei Prozis mit RTC auch persistent, solange 
Du ihm ein klitzekleines Bisschen Strom gönnst). Das ist der ganze 
Zauber.

Es gibt Variationen, aber generell brauchst Du irgendwas, das 
weiterlebt, während der Prozi im Koma liegt. Daran kommst Du nicht 
vorbei (ausser, Du kannst die Uhrzeit extern beziehen (GPS, DCF77, 
Timeserver etc.)

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst einfach bedenken, dass die Beschreibung "der Prozessor ist aus" 
heisst, das er absolut nichts tut, nichts an Veränderungen der Umwelt 
merkt und auch nicht das Zeit vergeht.
Deswegen die Vorschläge mit der RTC (Real Time Clock). Das ist ein 
Baustein, der dazu gedacht ist, unabhängig von der CPU weiter zu laufen 
und die Zeit hochzuzählen. Wenn Du Dir beim ausschalten die Zeit merkst 
und beim Einschalten die neue Zeit mit der alten vergleichst, dann 
weisst Du wieviel Zeit vergangen ist.
Eine alternative wäre, mit der CPU selbst eine RTC zu programmieren. 
Dabei muss sie allerdings dann doch mit Strom versorgt werden. Sie wacht 
dann in regelmässigen Abständen auf und zählt selbst die Minuten, 
Sekunden etc. hoch.

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S. Holger's Post: Ignorieren. Solche Idi**** gibt's ein paar hier. Ich 
habe erstaunlicherweise sofort kapiert, was Du meinst. Man muss nicht 
jede Frage in eine Doktorarbeit einpacken.

Gruäss
Simon

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Simon Huwyler,
mein eigentliches Problem ist das, wie unter "An- Ausschalter mit 
Mehrfachfunktion" beschrieben.

Wie könnte man hier Abhilfe schaffen? Mein Problem ist, dass ich mich in 
den Feinheiten der Elektronik nicht so gut auskenne.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Q Simon

>P.S. Holger's Post: Ignorieren. Solche Idi**** gibt's ein paar hier. Ich
>habe erstaunlicherweise sofort kapiert, was Du meinst. Man muss nicht
>jede Frage in eine Doktorarbeit einpacken.

>kannst Du das bitte für Anfänger erklären?

Nun gib ihm schon fertigen Code, einen Schaltplan wie er die
RTC anschliesst usw. Sonst nervt der hier noch tagelang rum;)

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chricky schrieb:
> Siehe An- Ausschalter mit Mehrfachfunktion

Das hingegen verstehe ich nicht. Was meinst Du damit?

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo holger,
... ne doch nicht ...

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Simon Huwyler,
ich habe heute Abend noch einen anderen Thread aufgemacht: "An- 
Ausschalter mit Mehrfachfunktion", das erklärt mein Vorhaben genauer.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achsoooo!

Da kann ich nur wiederholen, was von mir und meinen Vorrednern schon 
geschrieben wurde:

GANZ stromlos: geht nicht.

ABER: Es gibt keinen Grund, den uC stromlos zu schalten! Über 10 
Sekunden kannst Du das Ding locker mit 'nem Kondensator speisen! Den 
ganzen Prozi, da brauchst Du nicht mal 'ne RTC.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaja, warum sollte man auch einen 2.Schalter benützen, auf einem 
Schalter im Morsestil rumkloppen is viel cooler :-)

Ne mal im Ernst, was spricht gegen 2 Schalter, einen für die Spots, 
einen für die LEDs?

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Floh,
eigentlich kein Problem! Den Erdleiter vergewaltigen und schon kann ich 
einen zweiten Schalter installiern! Aber schün ist das nicht, oder?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Floh schrieb:
> Ne mal im Ernst, was spricht gegen 2 Schalter, einen für die Spots,
> einen für die LEDs?

Vielleicht soll das an der Decke hängen und da will man nicht extra die 
Wand aufstemmen, um noch nen Draht nachzuziehen.


Wie schon gesagt, ein Elko (470µF) am MC und bei Stromausfallerkennung 
den MC in Powerdown mit Watchdoginterrupt z.B. 0,25s.
Dann 40 Interrupts abzählen und schon weißt Du, wann die 10s um sind.
Nach den 10s gehst Du nicht mehr in Powerdown, sondern läßt den Elko 
sich einfach entladen.


Peter

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
wie erkenne ich, dass der Strom weg ist?

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bevor wieder Spitzfindigkeiten einiger Leute hier erscheinen von wegen 
Finger dranhalten etc.: Wie erkennt der µC, dass der Strom ausgeschaltet 
ist?

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da nimmste z.B. einen Komparator. Der vergleicht die Versorgungsspannung 
mit einer (über eine Referenz erzeugte) Spannung, mit welcher der uC 
gerade noch zuverlässig läuft.

Also. Strom wird abgeklemmt --> Kondi fängt an, sich zu entladen --> 
Komparator kippt --> Interrupt wird ausgelöst --> Prozi tut, was immer 
zu tun ist und legt sich schlafen.

Spannung kommt wieder --> Komparator kippt --> Interrupt weckt den Prozi 
auf.

Und in der Zwischenzeit kannst Du z.B. eben so einen Zähler laufen 
lassen, der einmal pro Sekunde den Prozi kurz weckt oder so.

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind leider böhmische Dörfer für mich...
Ich danke Dir für Deine Geduld und will auch wirklich keine fertige 
Lösung präsentiert bekommen (selber tüfteln, macht am meisten Spaß), 
aber kannst Du das bitte etwas laienhafter erklären?
Danke!

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm, das wird jetzt ein bisschen problematisch.... denn ich weiss nicht 
so recht, wo ich anfangen soll.

Du schreibst, Du bist Programmierer, also wage ich mal folgenden 
Vergleich:
Du möchtest mir das Composit-Pattern erklären, und ich weiss nicht, was 
Polymorphismus bedeutet.
Verstehst Du, was ich meine? Ich könnte Dir jetzt erklären, was ein 
Komparator und ein Kondensator ist (Interrupt kennst Du vermutlich als 
Programmierer). Aber das bringt Dich nicht weiter. Also schlage ich mal 
vor: Mach Dich mal etwas schlau über Etwas schlau in Bezug auf 
Elektronik-Grundlagen. Lerne z.B. wie man mit einem OpAmp einen 
Astabilen Multivibrator baut. Google und Wikipedia helfen Dir dabei. 
Dann, wenn Du das Rüstzeug hast, können wir Dir weiterhelfen, wie Du das 
für Dein Projekt anwenden kannst (wenn Du es bis dahin nicht selber 
erkannt hast).

Gell, das ist kein bisschen arrogant gemeint! Jeder muss mal irgendwo 
anfangen. Nur - ich könnte Dir jetzt eine fertige Lösung präsentieren 
(das wollen wir beide aber nicht), oder etwa 20 Seiten in diesen Thread 
reintippen, wie ein OpAmp funktioniert. Und das macht keinen Sinn, weil 
diese 20 Seiten in 100'000facher Ausführung im Netz zu finden sind.

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Simon Huwyler,
... wenn ich dafür Zeit hätte (träum) ...

Geht Folgendes:
Relais mit 220V Spule als "Stromsensor"?
Wird der Kondensator einfach parallel zur Spannungsversorgung geschaltet 
und puffert dann den µC?
Dann ist das auch für mich möglich...

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie kannst Du das schon mit 'nem Relais machen.

Du kannst aber z.B. auch eine LabView-Karte kaufen, in einen PC 
einbauen, und das ganze mit LabView realisieren. Den PC in 'ne 
Unterputz-Dose zu packen, wird halt etwas anspruchsvoll... ;-)

Ne, mal im Ernst: Lerne ein bisschen was über Hardware, bevor Du an 230V 
rangehst... sonst kann das ins Auge gehen.

Nicht böse sein, aber aufgrund Deiner Fragestellungen gehe ich davon 
aus, dass Du die Basics nicht im Griff hast. Und diese Zeit MUSST Du Dir 
nehmen. Oder das Projekt sein lassen und weiterhin PC-Projekte 
realisieren. Wenn Du in's Embedded design gehst, kommst Du schlicht 
nicht umhin, Dich mit Hardware zu befassen. Kann Dein GPIO denn eine 
Relais-Spule treiben? Machst Du das über einen Transistor? Was ist ein 
Transistor? Hast Du an die Freilaufdiode gedacht? Was ist Freilauf und 
was ist eine Diode? Wie begrenzt man nun eigentlich den Strom durch die 
Spule? Funkenschlag beim Schalten? Solltest Du vielleicht bei 
Nulldurchgängen schalten? Was ist ein Nulldurchgang?

Du siehst, da gibt es 1000e Fragen, die offen sind... Und Deine Fragen 
sind schlicht zu "offen". Wenn Du nicht selber beurteilen kannst, ob man 
es mit einem Relais realisieren könnte, bist Du auch nicht in der Lage, 
ein Relais richtig anzusteuern. Geschweige denn mit 230V dran.

Nicht böse gemeint. Aber

... wenn ich dafür Zeit hätte (träum) ...

gilt nicht. Entweder HAST Du zeit, resp. NIMMST sie Dir, oder Du lässt 
das Projekt fallen. Etwas zu basteln, wovon man keine Ahnung hat, geht 
ganz sicher schief.
... und es ist ja nicht so, dass die Lösung mit Komparator etc. eine 
Quadratur des Kreises ist. Das ist die Standardlösung. Das ist sozusagen 
das Composit-Pattern, wenn Du einen Texteditor programmieren willst. Und 
Du willst das jetzt irgendwie mit einem Rudel Singletons realisieren, 
deren Pointers Du in Vektoren von Arrays irgendwie speichert? Wobei ich 
nicht weiss, ob im Stack oder im Heap.... Wenn ich Dich fragen würde, ob 
man das nicht auch so machen könnte, würdest Du mir sagen: "Hey, lerne 
doch erst mal die Grundlagen von OOP, dann kann ich Dir weiterhelfen.

:-)

Gruäss
Simon

Autor: kotz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man man man... interrupts, komparatoren

tau - t = r * c

Kondensator laden sobald die schaltung strom bekommt. Kondensator über r 
antladen lassen das erst nach 10 sek. VLow unterschritten wird. 
Prozessor ein, Pin abfragen, gut ist.

Kann man auch über komparator machen, dann bleibt der c kleiner.

Schreibstil an Chricky angepasst, kann er besser lesen

Autor: Torsten K. (ago)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frage hierzu:

Inwiefern gibt es beim AVR Latch-Up? Wird der Kondensator bei stromlosem 
µC denn nicht über den Pin runtergezogen (könnte man ggf. über 
Serienwiderstand mildern)? Google findet dazu ja einiges.

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kotz schrieb:
> Kondensator laden sobald die schaltung strom bekommt. Kondensator über r
> antladen lassen das erst nach 10 sek. VLow unterschritten wird.
> Prozessor ein, Pin abfragen, gut ist.

Jaja, aber wenn das eben die Spannung sein soll, die den Prozi selber 
speist? Ausserdem: Haben die Eingänge vom AVR Schmitt-Trigger? Sonst 
hast Du nämlich zwischen Vhi und Vlo 'ne riesen Grauzone, bei der 
passieren kann, was will, und in der im ungünstigen Fall dann auch noch 
Strom gezogen wird wie blöd. Und aus ist's mit Deinem R*C!


Komparator kostet nichts und da hast Du 'ne riesen Flexibilität.

Und dann eben noch Torsten's Latch-Up und das Runterziehen über die 
Protector-Dioden....

Ich habe jetzt extra auch noch darauf geantwortet, um Chricky nochmals 
zu zeigen, dass es halt wirklich sehr sehr wichtig ist, selber zu 
wissen, was man baut. Obiger Vorschlag mag gut sein und funktionieren. 
Aber da gibt's wiederum 1000 Fallstricke. Einfach Vorschläge 
entgegennehmen und auf Treu und Glauben irgendwie nach Anleitung 
umsetzen geht nicht.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt zich Möglichkeiten:

- Messung der internen Bandgap mit VCC als Referenz.

- Messung der Eingangsspannung von vor dem Regler (7805) über 
Spannungsteiler.

- Zeitmessung der 20ms Periode hinterm Netztrafo oder per Optokoppler.


Peter

Autor: kotz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ST ist doch gut, sichert wakeligen zustand am eingang. Und natürlich 
wird rc mit serienwiderstand gemessen - ich dachte das versteht sich 
unter euch "profis" von selbst.

Aber macht ihr ruhig mal RTC und ADC und Komparatorgedöhns mit 
zwischenspeicherung im EEProm nebst Optokoppler für Nulldurchgang etc. 
Um in etwa 10 sek. zu erfassen würde ich ggf. noch einen DCF77 
Empfänger, noch aber besser GPS empfehlen.

Autor: Torsten K. (ago)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wird die Schaltung überhaupt versorgt? Gibt es hier ein kleines 
Netzteil mit Gleichrichter, Elko und 5V-Regler? Oder geht das in 
Richtung Direktspeisung über sog. Kondensatornetzteil (was ich hier 
nicht hoffe).

Bei ersterem sollte es einfach möglich sein, zwischen Gleichrichter und 
Elko eine Diode zu setzen, und direkt vom Gleichrichter (Ausgang) über 
Vorwiderstand (und Begrenzung mit Z-Diode auf AVR-Verträgliche Spannung) 
an einen Portpin zu gehen. Hier sollte man dann die 100Hz Pulse sehen. 
Fehlen die, dann läuft der µC nur noch aus dem Kondensator. Dies könnte 
Softwaremäßig erfasst werden. Kommen die Impulse nun rechtzeitig wieder, 
wars nur ein Aus-Einschalten. Sinkt die Spannung am Kondensator aufgrund 
längerer Zeit, startet das Programm eh neu (BrownOut Reset).

Soweit zur Theorie.

Autor: Chricky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
vielen Dank Euch allen für Eure Bemühungen. Im Beitrag " An- Ausschalter 
mit Mehrfachfunktion" gab mir Ulrich einen brauchbaren Vorschlag.

Gruß
Chricky

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.