Ich hab vor einiger Zeit mal die Frage gestellt wie man das am besten macht wenn man viel I/O Zeugs dran hat, also z.B. 3 Relais, n' paar Optokoppler unsw und man die z.B. wie bei einer Stereoanlage einen Wecker programmieren kann um bestimmte Sachen in einer gewissen Zeit schalten zu lassen. Das Konzept mit dem internen Timer war mir immer irgendwie unsympathisch da alles top sein sollte, z.B. Zeit bis zu Abschalten von ein paar Tagen, mehrere Programmierungen, das Löschen von solchen etc. Jetz bin ich auf eine neue Idee gekommen die - so denke ich - einfach zu realisieren wäre: Ich nehme einen normalen RTC der mir immer die aktuelle Zeit sagt (die muss halt ggf auch vorher programmiert werden). Jetzt frage ich in der main Schleife einfach immer über irgendwelche I/O Pins die Zeit ab. Wenn ich jetzt programmiere dann nehme ich aktuelle Zeit + programmierte Zeit, es wird in eine Art Tabelle geschrieben zu welchem Zeitpunkt was geschehen soll. Dann schaut der uC ob für den jetzigen Zeitpunkt was zu tun ist. Wenn nein geht es halt in den nächsten Schleifendurchgang, wenn ja wird die Aktion ausgeführt und der Eintrag aus der Tabelle gelöscht. Die Tabelle könnte sogar im EPROM gespeichert werden damit Programmieren auch beim Herausziehen des Steckers und vor allem bei einem ungewollten RESET nicht verloren gehen. BTW: Der AT90S2333 hat eh n' EEPROM oder? Gibts da einen RTC der relativ leicht anzusteuern ist und so wenig I/Os wie möglich braucht, da ich ein LCD auch noch anschliessen will? Der I2C Bus ist eh seriell über nur 2 Leitungen oder? Gibt es vielleicht einen I2C RTC? Ich könnte dann - komm ich grad drauf - wenn grad nichts auf dem LCD anzuzeigen ist die aktuelle Uhr anziegen. Das Programmieren stell ich mir in Menü-Basis vor. Ein bestimmter Knopf auf der Fernbedieung aktiviert das Menü, dann gibt es eine Taste "Neu" in der ich mittels einer Zahl das Gerät eingebe das geschaltet werden soll und dann z.B. das Timeout in 10-Minuten Schritten, nur so als Beispiel. Und währenddessen wird einem halt alles am Display angezeigt.... Findet ihr das mit dem externen RTC überhaupt eine gute Idee und wenn ja, was würde sich da eignen? Hat vielleicht schon jemand von euch sowas in der Art gemacht?? Vielen Dank im Vorraus! Niki
Hallo Niki! Vielleicht kennst Du ja die AVR-Control-Platine von un serer Homepage: http://www.mikrocontroller.com Da ist schon fast alles drauf, was Du brauchst: - Lcd - Tastatur - Relais und Treiber für 7 weirere Relais - Infrarot-Empfänger - Temperatursensor (Falls Du bei Frost 10min eher raus musst) - AT90S8535 oder AT90S4434 - ... Nur die I2C-Uhr fehlt. Aber der Stecker für I2C ist schon vorgesehen. Gruss, Holger
Hallo allerseits, I2C-RTC=PCF8583, sogar mit 240 Byte freiem Ram drin, sollte optimal für eine Zeitschaltung sein, da lassen sich die Daten im RAM speichern. MvG Kurt
Also ich weiss nicht. Schon wieder so ein Ding mit 32.768 Kilohertz Quarz. Dann kann man ja direkt via Zähler den Quarz des MC als Zeitbasis nehmen, so genau wie diese Dinger sind. Gibt es nichts in dieser Richtung mit einem 4.192 Mhz Quarz? Die sind nämlich wenigstens so ganggenau, dass sie auch das Prädikat "Uhr" verdienen. Gruss, Peter
Hallo Peter, der PCF 8583 läßt sich ja auch abgleichen - die Ganggenauigkeit ist für einfache Schaltuhren, bei denen es nicht auf die 10tel Sekunde ankommt ausreichend. Ein Vorteil ist der eingebaute Ram, in den 240 Byte RAM lassen sich prima die Schaltdaten speichern, das schont den AVR-EEPROM. Weiterhin lässt sich das Teil auch prima mit einem Akku puffern und läuft trotzdem weiter, auch bei Stromausfall. Willst Du den ganzen AVR akkugefuffert laufen lassen ist das schon stromintensiv für den Akku. Außerdem kann man den 8583 auch einen Interrupt erzeugen lassen z.B. einmal pro Sekunde. Im Interrupt lassen sich sämtliche Schalt- und Anzeigeaufgaben lösen- zwischendurch kann der AVR dann wieder schlafen - bis zum nächsten Interrupt. Das spart auch n paar mA. Also ich bastel gerne mit dem 8583. Gruß Kurt
Hi Kurt! Ich programmiere mit Bascom AVR und möchte die "Schaltdaten" setzen. Der Interrupt soll einmal am Tag ausgelöst werden, oder auch jeweils nach 24h .... egal wie! Aber wie gebe ich dem PCF diese Info? mfG - Tobias
Hi, anderes RTC IC DS1307. @Tobias: Schau mal bei Kuehnels HP vorbei da ist ein Beispielsprg zum PCF8583P. Das IC hat eine Alarmfunktion ich denke mal du meinst das. Mfg Dirk
Hallo Dirk! Ja, ich meine die Alarmfunktion. Vielleicht bin ich zu blöd, aber ich finde dieses Beispiel auf www.ckuehnel.ch nicht. Könntest du mir da evtl noch weiterhelfen? Mfg Tobias
Hi, hier das File. Ich bin auch gerade dabei das Ding bei Bascom einzubinden fuer eine Designer Lampe. Falls du nen paar Sachen hast kannst ja mal hier adden. Mfg Diek
Ich weiß ja nicht, wo Du wohnst, aber hier in Berlin habe ich mehrere Selbstbauuhren nur mit Netzbetrieb laufen, ohne daß sie ausfallen. Und wenns sehr sehr selten doch mal Stromausfälle gibt, sind die so kurz, daß man bequem auch den ganzen MC mit einer Batterie puffern kann. D.h. ein MC als Uhr ist in meinen Augen aber sowas von Tip Top. Dagegen sind RTCs fast nur mit NF-Quarzen zu kriegen. Quarze mit höherer Frequenz sind aber prinzipbedingt auch stabiler. Das trifft besonders im Hinblick auf Temperaturschwankungen zu. Ein Uhrenprogramm z.B. mit einem 4MHz-Quarz wird deshalb immer wesentlich konstanter sein, als ein RTC mit 32kHz. Abgeglichen werden müssen beide, wobei man eine Softwareuhr bequem in Software abgleichen kann. Auch kann eine Softwareuhr bereits die Sommerzeitregel beinhalten und ist trotzdem im Code wesentlich einfacher, da sämtliche Protokollwandlungen zu einem externen Chip entfallen. D.h. die Zeit liegt schon fix und fertig in den entsprechenden Registern als Sekund, Minute, ..., Jahr vor. In der Codesammlung findest Du eine Menge Beispiele von mir, z.B. auch für den RTC DS1994 oder für den hochgenauen DCF-77. Peter
Hallo habe sowas mit DCF77 Uhr gebastelt. Schalte damit aber momentan nur ein Relais, um damit meinen PC zu starten. Das ganze habe ich mit C für WinAvr gemacht, war mein erstes Projekt in C. Wenn Interesse besteht kann ich es hier zu Verfügung stellen... Gruß Peter
Hallo, habe auch mal eine Platine mit dem 1307 aufgebaut, Vorteil ist hals selbstständig aktivierende Stützbatterie, leider dafür kein Interrupt. Gruss A. Arndt
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.