Danke für den Quelltext, aber was mache ich, wenn ich mehrere Words aus
dem EEPROM lesen will ? Also, mehrere Variablen/Konstanten. Das kann
Deine Routine ja nicht.
Ausserdem finde ich es nicht sehr gut eine EEPROM-Variable eeData zu
nennen. Es gibt Leute die nicht sofort raffen, dass eedata und eeData
nicht das gleiche ist.
Aber ich weiss, dass Du das aus einem anderen Forum hast, da hab ich
auch schon gesucht.
Ich habe jetzt mal rausgefunden was das Problem ist. Das EEPROM wird mit
einer 24 Bit Adresse angesprochen, aber ein normaler Pointer hat nur 16
Bit, deshalb will
1 | TBLPAG = __builtin_tblpage(&eeData); // Initialize EE Data page pointer
|
2 | offset = __builtin_tbloffset(&eeData); // Initizlize lower word of address
|
das nicht haben.
Man müsste den normalen Pointer in einen 24 Bit Pointer konvertieren.
Aber dafür habe ich noch keine Lösung, obwohl es eigentlich ganz simpel
sein müsste.