Für dieses Forum muß Javascript im Browser aktiviert werden!
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! > > So leid es mir tut, Dein Programm löst keinen Reset bei mir aus! > Warum es bei Dir läuft, ist mir ein Rätsel. > > >Da hast du zum Teil Recht, die Funktion begrenzt nur den Wertebereich des Timeout > >auf 0-99, mehr soll und braucht sie auch nicht zu tun... > >Die maximale Zeit wird in der Variablen timeout gespeichert, auf die die Funktion "resetWD()" > >zurückgreift... > > Die Funktion resetWD() greift zwar auf die Variable timeout zu, > aber keine Funktion hat vorher die Uhrenregister > memory location 00 & memory location 08 initialisiert, > wo z.B. die Timer und Alarmfunktionen eingestellt werden. > Nachzulesen im Manual PCF8583_5.pdf. > > Hier meine neueste Version der Funktion setWDtimeout, die mit > allen watchdogtimeout Werten funktioniert! > /** Watchdog Timeout ********************************************/ > function setWDtimeout(byte watchdogtimeout) > { > if watchdogtimeout<=99 timeout=watchdogtimeout; > else timeout=99; > > /* neu */ > i2c.start(device); > i2c.write(0x00); // Im Uhren-Register 00 > i2c.write(0x04); // alarm enable bit einschalten > i2c.cstop(); > > i2c.start(device); > i2c.write(0x08); // Im Uhren-Register 08 > i2c.write(0x4A); // timer function auf Sekunden, timer interrupt enable einschalten > // timer alarm enable einschalten > i2c.stop(); > /* neu bis hierher */ > > } > > Da geht auch Dein Programm!!! > > Gruss > GPL > > > > <code> > > thread main > > { > > hwcom.init(); > > hwcom.setspeed(8); > > pcf8583.init(1,1,1,0,1); // Init ohne Aktivierung des WD-Threads > > pcf8583.setWDtimeout(10); // Setzen des WD-Timeouts > > pcf8583.resetWD(); // manuelles Zurücksetzen des Watchdogs > > loop > > {hwcom.print("WD in 10 sec..."); > > sleep 2000; > > hwcom.print("WD in 8 sec..."); > > sleep 2000; > > hwcom.print("WD in 6 sec..."); > > sleep 2000; > > hwcom.print("WD in 4 sec..."); > > pcf8583.resetWD(); // manuelles Zurücksetzen des Watchdogs > > hwcom.print("WD zurückgesetzt..."); > > hwcom.print("WD in 10 sec..."); > > sleep 2000; > > hwcom.print("WD in 8 sec..."); > > sleep 2000; > > hwcom.print("WD in 6 sec..."); > > sleep 2000; > > hwcom.print("WD in 4 sec..."); > > sleep 2000; > > hwcom.print("WD in 2 sec..."); > > sleep 5000; > > hwcom.print("das solltest du nicht mehr sehen..."); > > halt; > > } > > } > > > > </code> > > > > > > > > > nitraM