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 Herr André Helbig, > > mir ist soeben aufgefallen, das es sich um ein Timingproblem handelt. > Ein sleep 1000; nach dem Schreiben führt dann zum richtigen Ergebnis. > Evtl. können Sie aber in Ihrer Doku zum eeprom.c2 diesen Aspekt noch mal darstellen und aus > der Erfahrung heraus auch optimale Sleep-Werte nennen. 1 Sek. ist ja doch recht lang. > Eine Anpassung im Modul-Code wäre schöner aber ungleich schwieriger da für alle 8 möglichen Eeproms > (4 bei 24c512) sowas wie ein Timer mitlaufen müste, der den jeweiligen Thread vor dem zweiten Zugriff > so lange schlafen legt, bis das Eeprom wieder angesprochen werden kann. > > Dies führt jedoch auch für mich als Programmierer zu einem Problem da ich nie weis, wann mein > Lese / Schreibthread das nächste mal dran kommt. Kommt er zu früh dran, gibts eine fehlerhafte Datenübergabe, > lege ich ihn jedesmal mit sleep schlafen, ist das ggf. nicht immer nötig. Da die Resourcenverwaltung jedoch > kassischer Weise dem Betriebssystem und deren Treibern obliegt, müste dies im Modul bzw. in entsprechenden > Treibern verwaltet werden. Beschreibe ich 2 oder mehr Eeproms zeitnah (habe jetzt 2x24c512), potenziert sich das > Problem noch, da ich im Tread auch nicht sagen kann, welchem Eeprom mein vorheriger Zugriffsversuch galt. > (und damit das Timeout-Kritterium zutrifft) > Ich habe also auch keine Patentlösung dafür ... aber evtl. können Sie dies in der Doku zumindest erwähnen. > > > mystring=" i2c-Test"; > > //---------------------- > > // evtl. fehlerhaft > > //---------------------- > > eeprom.writestr(y,z,mystring); > sleep 1000; > > mystring=" Fehler"; > > eeprom.readstr(y,z,mystring); > > //---------------------- > > lcdext.print(mystring); > > > Mit freundlichem Gruß > > Rolf Diesing > > > >