Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: pcf-uhr-watchdog-falsche Antwort Kategorie: Programmierung (von Hans-Jürgen - 14.08.2005 9:13)
Als Antwort auf Re: pcf-uhr-watchdog-falsche Antwort von JörgC - 10.08.2005 9:21
Ich nutze:
C-Control II Unit, CC2-Application-Board, eigenes Board, OSOPT V3.0
Hallo Jörg, danke für Deine Antwort. Es funktioniert! Mir ist noch was aufgefallen: Wird im init Befehl
Watchdog Timeout auf 0 gesetzt gibt es ein Problem. Ich habe im Beitrag Nr.10737 genau dieses
Problem auch gefunden. Die Lösung habe ich unten im Code eingefügt:
else i2c.stop();
Ich überlege noch wie ich zwischen reset und Stromausfall unterscheiden könnte.Ich denke ich schreibe
die Uhrzeit ständig in eine Variable des Uhrenbausteins. Ist die Zeitdifferenz deutlich gröÃ?er als Time
out so wars ein Stromausfall. Oder gibts eine bessere Lösung?
Viele Grüsse
Hans-Jürgen
> Hier die abgeänderte Init:
>
> /*************************************/
> /* PCF8583 initialisieren            */
> /*************************************/
> function init(byte A0,byte setCC2clock, byte autosync, byte watchdogtimeout, byte enableHostKey) returns byte
> // watchdogtimeout = 0 bis 99 (sec.)
> {byte reg;
>  if watchdogtimeout>99 timeout=99; else timeout=watchdogtimeout;
>  device=((A0!=0) and 0b10) or 160;
>
>  if i2c.cstart(device)
>   {
>    i2c.write(0x00);
>    i2c.start(device or 1);
>    reg=i2c.readlast() and 0x05;
>    i2c.stop();
>
>    i2c.start(device);
>    i2c.write(0x00);
>    i2c.write(0x04 and (watchdogtimeout!=0));
>    i2c.cstop();
>    if watchdogtimeout
>     {
>      i2c.start(device);
>      i2c.write(0x08);
>      i2c.write(0x4A);
>      i2c.stop();
>     }
**************  else i2c.stop(); // capture lösen wenn watchdogtimeout nicht gesetzt ! *********
>    if setCC2clock synccc2();
>    if autosync run sync;
>    enHostKey=enableHostKey!=0;
>    if timeout run watchdog;
>    if reg==0x05 return 0x80; //= Reset durch Watchdog verursacht
>            else return 0xFF;
>  }
>  i2c.stop();
>  return 0;
> }
>

>
> Viele Grüsse,
> Jörg


    Antwort schreiben


Antworten:

Re: pcf-uhr-watchdog-falsche Antwort (von JörgC - 17.08.2005 16:09)