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

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo nitraM! > > > Welche Version von PCF8583 nutzt du??? > > > > > > nitraM > > Die letzte V1.55! > Ich fahre immer nur mit den letzten Updates!!! > Schau Dir mal die init -Funktion an. > Da werden die Uhrenchip-Register 0 und 8 nur initialisiert > wenn der watchdogtimeout ungleich 0 ist. > Also die 1. Variante mit dem thread. > Wenn watchdogtimeout 0 ist, werden die Uhrenchip-Register 0 und 8 weder > von dieser noch von einer anderen Funktion initialisiert! > Da liegt der Hund begraben! > /*************************************/ > /* 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; > device=Addr[(A0!=0) and 1]; > if i2c.cstart(device) > { > i2c.write(0x00); > i2c.start(device or 1); > reg=i2c.readlast() and 0x05; > i2c.cstop(); > i2c.start(device); > i2c.write(0x00); > i2c.write(0x04 and (watchdogtimeout!=0)); > if watchdogtimeout > { > i2c.cstop(); > i2c.start(device); > i2c.write(0x08); > i2c.write(0x4A); > } > i2c.stop(); > 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; > } > > Ich glaube jetzt auch eine Möglichkeit gefunden zu haben, warum es bei Dir trotzdem funktioniert: > 1.) Man bekommt einen neuen PCF-Baustein geliefert. Da sind natürlich > alle Register auf 0. > 2.) Da dieser PCF-Baustein eigentlich nur Sinn macht, wenn man ihn mit einer Batterie, GoldCup o.ä. > puffert, bleiben die Registerinhalte auch erhalten. > 3.) Natürlich möchte man ihn testen. Deswegen nimmt man das Testprogramm von Andre Helbig. > > 4.) Wenn man das so wie es ist startet, wird die 1. Variante mit dem thread ausgeführt. > > 5.) Es funktioniert perfekt, da ja bei dieser Variante die Uhrenregister > richtig gesetzt werden! > > 6.) Wenn man jetzt ein eigenes Programm macht, wird das auch in der > Variante 2 ohne thread funktionieren, weil die Uhrenregister durch die Pufferung des RAM > ja richtig gesetzt sind!!! > 7.) Wenn man Glück hat und die gesetzten Uhrenregister nicht ändert, wird man nie einen Fehler bemerken. > > 8.) Der Haken kommt allerdings, wie bei mir, wenn man ein unbenutztes Modul verwendet. > > 9.) Ich musste den Chip in einem Modul tauschen und habe noch 2 neue gehabt. > > 10.) Plötzlich funktionierten meine Watchdogprogramme, alle mit Variante 2 ohne thread programmiert, > mit keinem der neuen Module mehr und ich war am verzweifeln. > 11.) Auch Andre hat den Bug wahrscheinlich beim Erstellen des Testprogrammes nicht bemerkt, da > er auch sicherlich ein gepuffertes RAM verwendet hat! > 12.) Meine bereits gepostete Änderung in der setWDtimeout Funktion hat für mich die Lösung gebracht! > Alle meine Watchdog-Programme funktionieren auf einmal wieder! > > Gruss > GPL >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB