PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : robby als wecker, Problem: Reset setzt Systemzeit zurück



itz
04.04.2008, 19:44
hallo,

bin robbyanfänger und möchte ihn gerne als Wecker verwenden, wurde auch hier im forum schon beschrieben, aber:

Systemzeit einstellen und auslesen gelingt mir grundsätzlich, aber sobald ich den Roby abdrehe oder die Resettaste drücke, ist die Systemzeit wieder auf irgendein Fantasiedatum zurückgesetzt. Ich müsste also trotz gleichbleibender Weckzeit jedesmal die Systemzeit neu einstellen (??) Ich hätte mir das aber eher so wie bei meinem PC vorgestellt, des vergißt die Zeit ja auch nicht wenn ich ihn ausschalte (immerhin bleibt der Akku ja im Robby.

Mach ich da was falsch? oder ist das eine naive Vorstellung von mir, dass er sich trotz Reset die Zeit merken soll?

itz

Dirk
04.04.2008, 19:53
Hallo itz,

in deinem PC gibt es ja eine RTC (Echtzeituhr) mit Stützakku, die die Zeit fortführt, wenn dein PC aus ist.

Der CCRP5 hat keine Echtzeituhr. Wenn der Prozessor ausgeschaltet oder resettet wird, ist die Zeit verloren.

Lösungen:
1. Zusätzliche RTC draufbauen
2. Ein DCF77-Modul anschließen, damit nach dem Ausschalten rasch wieder die richtige Zeit da ist.

Gruß Dirk

itz
04.04.2008, 20:50
danke Dirk,

und was könntest einem Anfänger eher empfehlen?, was kanns ungefähr kosten?

(handwerklich nicht ungeschickt aber kaum Löterfahrung)

itz

Dirk
04.04.2008, 21:06
und was könntest einem Anfänger eher empfehlen?

Ich würde ein DCF77-Modul nehmen. Das von Conrad (641138) kann man direkt anschließen. Man braucht auch nichts zu programmieren, weil das Betriebssystem der CC1 schon einen DCF-Decoder eingebaut hat.

Gruß Dirk

itz
04.04.2008, 21:17
vielen Dank,
das werd ich probieren, Preis ist auch ok
danke
itz

itz
08.04.2008, 19:42
und was könntest einem Anfänger eher empfehlen?

Ich würde ein DCF77-Modul nehmen. Das von Conrad (641138) kann man direkt anschließen. Man braucht auch nichts zu programmieren, weil das Betriebssystem der CC1 schon einen DCF-Decoder eingebaut hat.

Gruß Dirk

Hallo Dirk,
jetzt hab ich das Teil. aber so ganz kenn ich mich nicht aus:
da steht:
1: GND
2: Betriebsspannung 1,2V bis 15 V
3: DCF-Ausgang
4: DCF-Ausgang invertiert

Wenn ich jetzt Anschluss 1 mit Y72 (GND) auf dem Robby zusammenhänge und den Anschluss 3 mit Y75 (DCF FREQ1), dann weiß ich nicht recht woher die Spannung für Anschluss 2 nehmen.
oder gehört sowohl GNT als auch Betriebsspannung von der Buchse genommen wo ich auch das Netzgerät anhänge und nur den DCF-Ausgang auf Y75?
und Pull up Widerstände brauch ich vermutlich nicht, oder?

wie gesagt, blutiger Anfänger eben und ich möcht ihn nicht schon am Anfang kaputt machen,
kannst mir nochmal was schreiben?

itz

Dirk
08.04.2008, 20:10
Hallo itz,

wenn ich deinen 1. Post lese, denke ich, dass du auch die Erweiterungsplatine (190310), ein LCD und evtl. auch eine Experimentierplatine (EXP 190315) hast... Oder wie konntest du sonst die Zeit auslesen/anzeigen?

Auf der EXP kannst du das Modul am besten aufbauen, du kannst das DCF-Modul an diese Pins anschließen:
Ausgang DCF invertiert (Klemme 4) -> DCF FE Q1 -> Y248
Betriebsspannung (Klemme 2) -> VCC -> Y249
GND (Klemme 1) -> GND -> Y306 (o.a.)

Pullups werden nicht gebraucht.

Gruß Dirk

itz
08.04.2008, 20:24
nein, ich hab nur den Robby ohne irgendeinen Zusatz.
Die Zeit und Datum hab ich mit durch Blinken der LEDs anzeigen lassen, mit Beispielsweise:

for counter= 1 to HOUR
gosub LED4ON:pause 5:gosub LED4OFF:pause 30
next

Aber ich glaub jetzt komm ich schon zurecht:
hab nicht gewusst, dass die Betriebsspannung "VCC" ist.
Das wär dann bei mir Y91(?)

danke
itz

Dirk
08.04.2008, 20:44
... Betriebsspannung "VCC" ist. Das wär dann bei mir Y91(?)
Genau.

Zu den Anzeigemöglichkeiten mit den 4 LEDs noch eine von mir:


'Binäre Ausgabe aller Werte von 0 bis 255 mit den 4 LEDs:
#Start
for WERT = 0 to 255
gosub LED_LONIBBLE
gosub LED_HINIBBLE
next
goto Start

'----------------------------------------------------------------------
' UNTERPROGRAMME:

'IIIIIIIIIIIIII Binärausgabe mit den 4 LEDs IIIIIIIIIIIIIII
'Die Variable WERT muss als BYTE oder WORD definiert sein.
'Ausgabe 1. Nibble (low):
#LED_LONIBBLE
gosub LEDSOFF: gosub LED1FLASH: gosub LED1FLASH
gosub LED1FLASH: gosub LED1FLASH: gosub LED1FLASH
if (WERT and &B1) <> 0 then gosub LED1ON
if (WERT and &B10) <> 0 then gosub LED2ON
if (WERT and &B100) <> 0 then gosub LED3ON
if (WERT and &B1000) <> 0 then gosub LED4ON
pause 100: return

'Ausgabe 2. Nibble (high):
#LED_HINIBBLE
gosub LEDSOFF: gosub LED2FLASH: gosub LED2FLASH
gosub LED2FLASH: gosub LED2FLASH: gosub LED2FLASH
if (WERT and &B10000) <> 0 then gosub LED1ON
if (WERT and &B100000) <> 0 then gosub LED2ON
if (WERT and &B1000000) <> 0 then gosub LED3ON
if (WERT and &B10000000) <> 0 then gosub LED4ON
pause 100: return

#LED1FLASH
gosub LED1ON: pause 5: gosub LED1OFF: pause 5: return
#LED2FLASH
gosub LED2ON: pause 5: gosub LED2OFF: pause 5: return

'Binär-Dezimal-Tabelle (4-Bit):
' WERT: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
' LED1-> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
' LED2-> 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
' LED3-> 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
' LED4-> 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
'
' Der Dezimal-WERT kann in der 1. Zeile abgelesen werden, wenn
' man die zutreffende LED-Kombination aussucht (1->an, 0->aus).
' Der Wert des 2. Nibbles (high) kann genauso abgelesen werden,
' muss aber noch mit 16 multipliziert und zum 1. Nibble addiert
' werden, um den ganzen 8-Bit-Dezimalwert zu erhalten.

'----------------------------------------------------------------------


... wäre ja vielleicht auch ganz lustig, die Zeit binär zu lesen ...

Gruß Dirk

itz
09.04.2008, 16:29
... wäre ja vielleicht auch ganz lustig, die Zeit binär zu lesen ...

Gruß Dirk

cool, das werd ich mir einbauen, ist sicher viel angenehmer als die Blinklichtzählerei
itz