PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMEGA32 Uhrzeit integriert?



Haveaniceday
10.08.2007, 15:12
Hallo,
ich baue mir demnächst ein board mit nem ATMEGA32. Die Steuerung (Terrarium-Steuerung, Licht An/Aus nach Zeit, Temperatur Regelung nach Zeit) soll Zeit abhängig erfolgen.
Jetzt frage ich mich, hat der µC eine Zeit und Datum Funktion berreits drin, wo ich die Zeit und Datum einfach nur per PC einstellen muss oder benötige ich noch einen DCF77?

Danke,
ciao Johannes

franzl
10.08.2007, 15:17
Hi Johannes,
also direkt integriert hat er das nicht, du könntest es zwar durch einen Timer selbst realisieren. Oder du nimmst einen I2C Uhrenbaustein, oder eben deine genannte Lösung.
mfg franz

Jon
10.08.2007, 15:18
Wenn du an den Pin 28 und 29 einen Uhrenquarz hängst, dann musst du mit dem Programm am Anfang eine Zeit einstellen, und dann läuft im ATMega eine Uhr, mit Jahr, Monat, Tag, Minute, Sekunde, Stunde und was es noch so gibt.

jon

Haveaniceday
10.08.2007, 15:47
Du meinst sowas hier:
http://www.reichelt.de/?SID=26rbR8eawQARoAADfJdDMa150fdaae839b6932ddc0db0 9f4273e6;ACTION=3;LA=4;GROUP=B41;GROUPID=3173;ARTI CLE=1089;START=0;SORT=artnr;OFFSET=16

Aber wie Steuer ich den an bzw. stelle ich die Uhrzeit ein? Wie sieh es bei einem Spannungsausfall aus? Speichert er die Zeit? Oder ist sie dann weg und muss neu eingestellt werden?

Hanni
10.08.2007, 16:07
Wenn du an den Pin 28 und 29 einen Uhrenquarz hängst, dann musst du mit dem Programm am Anfang eine Zeit einstellen, und dann läuft im ATMega eine Uhr, mit Jahr, Monat, Tag, Minute, Sekunde, Stunde und was es noch so gibt.

Sicherlich nicht!
Wenn man an die besagten Pins einen Uhrenquarz hängt, kann man einen der Timer (grad zu faul zum guggn), mit ner Art Referenz Zeit laufen lassen.
Aber ne Uhr ist das deswegen noch lange nicht.

Mein Tipp: Datenblatt lesen!

Die einfachste und ressourcenschonendste Methode dürfte immernoch eine externer Batteriegebufferte Uhr sein.

Grüße,
Hanni

Haveaniceday
10.08.2007, 16:18
Die einfachste und ressourcenschonendste Methode dürfte immernoch eine externer Batteriegebufferte Uhr sein.


Was meinst du damit? Eine stink normale Digitale Uhr? Wie soll ich die den mit der µC verbinden? bzw. die Uhrzeit auslesen?

Im Datenblatt des ATMEGA32 hab ich etwas für Real Time counter gefunden. Kann man darüber nicht die Uhrzeit einstellen bzw. laufen lassen? Wenn ja wie?

Jon
10.08.2007, 16:31
Wenn ich einen Uhrenquarz an die besagten Pins hänge, bei BASCOM am Anfang des Programmes eine Zeit festlege, dann kann ich mir immer über UART Datum und Zeit ausgeben lassen. Also ist es doch eine Uhr. Es kann aber sein, dass das eine fertige Funktion von BASCOM ist, die man in C mit der "Hand" programmieren muss.
Wenn der strom weg ist, dann ist auch die Zeit weg. dann fängt die Uhr bei 0:00:00 an.


Die einfachste und ressourcenschonendste Methode dürfte immernoch eine externer Batteriegebufferte Uhr sein.
Das stimmt. Ist auch genauer.
Das sind meistens extra ICs, die über den I2C Bus mit dem µC verbunden werden. Die geben dann kodiert die Zeit an den µC weiter, ziehen wenig strom und werden mit einer kleinen Batterie betrieben, sodass ein Stromausfall keine Auswirkungen hat.

@Haveaniceday,
mit welche Sprache willst du programmieren?

jon

Haveaniceday
10.08.2007, 16:47
Würde gerne in C++ programmieren.
Könnt ihr mir ein beispiel (link) oder die genaue Bezeichnung für ein solches Zeit IC geben?
Macht es ihrgendwas aus, das ich an dem I2C BUS bereits einige Senosren hängen habe?

Jon
10.08.2007, 16:52
Einen IC kann ich dir leider nicht nenne. streng doch mal Google oder die Suchmaschine von Reichelt an. dann wirst du bestimmt etwas finden.


Macht es ihrgendwas aus, das ich an dem I2C BUS bereits einige Senosren hängen habe?
Das macht nichts aus, solange die Adresse des Uhrenbausteins nicht belegt ist. Ist aber unwahrscheinlich.

jon

Hanni
10.08.2007, 17:13
bei BASCOM
Siehste, da liegt der Hund begraben ...


Würde gerne in C++ programmieren.
C++ ist etwas zu verschwenderisch für die limitierten Ressourcen eines Mikrocontrollers. Ich würde dir in dem Fall zu C raten.

Grüße,
Hanni

Haveaniceday
10.08.2007, 17:24
Habe nur dies hier gefunden:
http://www.reichelt.de/?SID=28iLlvK38AAAIAAFhWT3o8ebce4b60ad72117994e79b6 5ec0b228;ACTION=3;LA=4;GROUP=A319;GROUPID=2949;ART ICLE=15318;START=0;SORT=preis;OFFSET=16

Ist dass das richtige?
Aber gibt es keiner andere lösung? Hat der ATMEGA32 nicht schon ne art RTC funktion drinen?

Haveaniceday
10.08.2007, 17:24
Habe nur dies hier gefunden:
http://www.reichelt.de/?SID=28iLlvK38AAAIAAFhWT3o8ebce4b60ad72117994e79b6 5ec0b228;ACTION=3;LA=4;GROUP=A319;GROUPID=2949;ART ICLE=15318;START=0;SORT=preis;OFFSET=16
http://www.reichelt.de/?SID=28iLlvK38AAAIAAFhWT3o8ebce4b60ad72117994e79b6 5ec0b228;ACTION=3;LA=4;GROUP=A319;GROUPID=2949;ART ICLE=58149;START=0;SORT=preis;OFFSET=16
Ist dass das richtige?
Aber gibt es keiner andere lösung? Hat der ATMEGA32 nicht schon ne art RTC funktion drinen?

franzl
10.08.2007, 17:38
Hi,
also ich benutz den hier.
http://www.reichelt.de/?SID=27XMEj2KwQARsAAGbva0E063be480c7f3e262d7f372a9 2b86c0c9;ACTION=3;LA=4;GROUP=A312;GROUPID=2942;ART ICLE=14531;START=0;SORT=preis;OFFSET=16
mfg franz

Haveaniceday
10.08.2007, 17:47
Ok gut, dann werde ich es wohl doch über einen RTC machen.
Nur leider finde ich weder bei Conrad noch bei Pollin einen. Weil wenn ich bei Reichelt bestelle muss ich ja min 10 Euro zusammen bekommen und 5,60Euro Versand. Das ist ziemlich Teuer finde ich...

StevieL
10.08.2007, 18:17
Hallo Johannes,

du kannst in Bascom die RTC des Mega nutzen. Hierzu musst du nur, wie erwähnt, einen Uhrenquarz anschließen. Du kannst auch auf diverse Variablen wie vergangene Sekunden seit Mitternacht u. Ä. zugreifen.

Wenn du einen RTC-Chip verwenden willst musst du meist auch einen externen Uhrenquarz anhängen. Zudem verliert auch der RTC-Chip bei einem Stromausfall die Uhrzeit. Um das zu verhindern musst du den mit einer Batterie oder einem Goldcap puffern.

Haveaniceday
10.08.2007, 18:43
also brauche ich doch kein Echtzeit IC?
Wie schließe ich den jetzt den Quart richtig an und wieviel Hz muss er haben? Haben diese Echtzeit IC's ihrgendwelche Vorteile?
Kann ich mir dem Quarz doch Uhrzeit und Datum Simulieren? Hab gelesen das die Uhrzeit mit einem Quarz sehr ungenau sein soll?

StevieL
10.08.2007, 19:20
Der Quarz kommt an die Pins TOSC1 und TOSC2 (28 und 29 beim Mega32) und hat 32768 Hz.



Enable Interrupts

Config Clock = Soft 'Softclock aktivieren
Config Date = Dmy , Separator = . 'Deutsches Datumsformat

Time$ = "20:04:00" 'Setzen auf Startwert
Date$ = "10.08.07"


Jetzt läuft die Uhr. Mit



LCD Time$


bekommst du die Zeit direkt auf ein Display. Näheres findest du in der Bascom-Hilfe unter Config Clock.

Ich verwende zusätzlich einen RTC-Baustein mit Goldcap als Backup. Beim Programmstart werden Datum + Uhrzeit eingelesen so dass nach einem Stromausfall die Zeit korrekt gestellt wird.

Haveaniceday
10.08.2007, 19:33
Ist der Goldcap bzw. Kondensator im IC integriet oder hast du ihn selbst dazugeschaltet?

Hatte eben eine Idee, würde es nicht auch funtkionieren, ein DCF-Modul aus nem alten Digital-Wecker zu benutzen? Das wäre zu einem Kostengünstig und super genau :)

Jon
10.08.2007, 19:51
Ist der Goldcap bzw. Kondensator im IC integriet oder hast du ihn selbst dazugeschaltet?
Der ist nicht im IC. Muss also zusätzlich noch da dran.

jon

Haveaniceday
10.08.2007, 20:11
Ok, und was ist mit dem DCF modul ausm Funkwecker? würde das gehen?

Jon
10.08.2007, 20:25
Wenn du den richtigen Pin findest, ist das möglich. Ich denke aber, dass das schwierig wird. Schau mal beim Conrad vorbei. Die haben ein DCF77 Modul für 10€, wird als Zubehör zum C-Control angeboten.

jon

StevieL
10.08.2007, 20:47
Ein Funkmodul geht natürlich auch. Aber das braucht nach einem Stromausfall einige Minuten bis die Zeit wieder gestellt wird. Unter Umständen wird aber gar kein Signal gefunden und deine Steuerung läuft mit einer falschen Zeit weiter.

Haveaniceday
10.08.2007, 20:58
Hier mal ein link den ich gefunden hab:
http://www.qsl.net/df4kv/alclk.html
Also denke das sollte dann klappen.
Sehe ich das richtig, dass das Modul an nem Digitalen Eingang angeschlossen wird?