.. schnelle Antwort .. auch nicht funktioniert. Werde mir die Tutorials einmal anschauen ..
Ach Leute - vielleicht erst Tutorial lesen, dann Versuch?
Hier (klick) ist eigentlich "alles" erklärt, erläutert und bebeispielt. Hier hatte ich (m)ein EEPROM-Problem und Markus hatte geholfen. Und so siehts bei mir aus (einfach zufällig aus meiner Codekiste) in einer *.h-Datei:
Code:
// ============================================================================= =
// Speicher im EEPROM
// ============================================================================= =
//Strings im EEPROM
// Zum Schreiben und Auslesen vom EEPROM vgl.
// https://www.roboternetz.de/community/threads/19453-mal-wieder-eine-
// EEPROM-Frage?p=568764&viewfull=1#post568764
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// ###>>> Byte-Array, das erste Byte des EEPROMS gilt als nicht vertrauenswürdig
uint8_t firstByteDummy EEMEM;
uint8_t eeDUMMYbytes [100] EEMEM; // Dummies
uint8_t eeBytes [12] EEMEM; // ?? Allzweckbytes ??
uint16_t eeSrvoff[12] EEMEM; // (Dummy?)Servo-Position - Offset
//u8 SVT[12][11] EEMEM; // Servotexte
// ============================================================================= =
Und dann die Anwendung:
Code:
// - - - - - - -
case 66: // hex x42 => Schreib Datum ins EEPROM
i2cdata[109] = 85; // Markiere Daten als "übernommen"
uputs0("\tEw "); //
itoa(npntr, wortabc, 10); // Servopointer
uputs0(wortabc); // ... ausgeben
uputs0("\r"); //
//void DEEsch (uint8_t data, uint8_t EEPadd) // Datum wegschreiben auf Adresse
eeprom_write_byte ( &eeBytes[npntr], 50 );// Schreib Offset 50 auf Adresse 100
uputs0("\teEw\r"); //
break;
// - - - - - - -
case 67: // hex x43 => Schreib Datum "-2) ins EEPROM
i2cdata[109] = 85; // Markiere Daten als "übernommen"
uputs0("\tEw "); //
itoa(npntr, wortabc, 10); // Servopointer
uputs0(wortabc); // ... ausgeben
uputs0("\r"); //
// BEEsch ( -2, 100); // Schreib Offset -2 auf Adresse 100
eeprom_write_byte ( &eeBytes[npntr], 50 );
uputs0("\teEw\r"); //
break;
// - - - - - - -
case 70: // hex x46 => Nur LESEN Word aus EEPROM
i2cdata[109] = 85; // Markiere Daten als "übernommen"
uputs0("\tEw lesen "); //
muell = 9;
eeprom_busy_wait();
muell = eeprom_read_word ( &eeSrvoff[10] );
uputs0("\teEw "); //
itoa(muell, wortabc, 10); // Datum
uputs0(wortabc); // ... ausgeben
uputs0("\r"); //
break;
// - - - - - - -
Vielleicht hilfts?
Lesezeichen