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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo, > ich habe ein Problem beim Lesen des EEPROM bzw. beim Schreiben des output mit > Msg_Write..(). Es scheint so, dass sich die Msg_Write..() irgendwie verschlucken. > Hier in dem Beispiel beendet der Interpreter seine Arbeit. Aber es kommt auch vor, > dass er hängen bleibt. > > Kann da jemand helfen ? > > Gruss > Hans > > /* > Test EEPROM: > -- Schreiben und lesen in einem Rutsch geht fehlerfrei: > > Interpreter gestartet - 4kb RAM > > > 0000 : 0 : 1 > 0004 : 2 : 3 > 0008 : 4 : 5 > 000C : 6 : 7 > 0010 : 8 : 9 > 0014 : 10 : 11 > 0018 : 12 : 13 > 001C : 14 : 15 > 0020 : 16 : 17 > 0024 : 18 : 19 > 0028 : 20 : 21 > 002C : 22 : 23 > 0030 : 24 : 25 > 0034 : 26 : 27 > 0038 : 28 : 29 > > Zeit: 60ms > Interpreter gestoppt > ÿ ÿ > > -- Wenn ich dann aber in einem 2. Anlauf nur lesen will > - write_EEPROM() ist auskommentiert - erhalte ich folgenden > Output: > Interpreter gestartet - 4kb RAM > > > 0000 : 0 : 1 > 0004 : 2 :: 21 // hier gehts schief ! der Rest stimmt wieder. > 002C : 22 : 23 > 0030 : 24 : 25 > 0034 : 26 : 27 > 0038 : 28 : 29 > > Zeit: 20ms > Interpreter gestoppt > ÿ ÿ > > */ > > #define FIN 15 > > word data[32] = {0, 1, > 2, 3, > 4, 5, > 6, 7, > 8, 9, > 10, 11, > 12, 13, > 14, 15, > 16, 17, > 18, 19, > 20, 21, > 22, 23, > 24, 25, > 26, 27, > 28, 29}; > > void main(void) > { > Msg_WriteChar(13); > write_EEPROM(); > > Msg_WriteChar(13); > read_EEPROM(); > } > > // ////////////////////// > void write_EEPROM(void) > { > int i, j; > word n; > > n = 0; > > for (i=0; i<FIN; i++) > { > EEPROM_WriteWord(n, data[n/2]); > n = n + 2; > EEPROM_WriteWord(n, data[n/2]); > n = n + 2; > } > } > > // //////////////////////// > void read_EEPROM(void) > { > int j; > word n, data1, data2; > n=0; > > for(j=0; j<FIN; j++) > { > data1 = EEPROM_ReadWord(n); > n = n + 2; > data2 = EEPROM_ReadWord(n); > Ausgabe(n-2, data1, data2); > n = n + 2; > } > } > > // /////////////////////////////////////////// > void Ausgabe(word adr, word data1, word data2) > { > Msg_WriteHex(adr); > Msg_WriteText(" : "); > Msg_WriteWord(data1); > Msg_WriteText(" : "); > Msg_WriteWord(data2); > Msg_WriteChar(13); > }