Du willst 256 Worte ins EEPROM speichern?
Dein Code speichert ein Wort ins EEPROM, danach erhöht es addr um 1(!)
und schreibt das nächste Wort ins EEPROM - wobei ein Byte des letzten
EEPROM-Worts überschrieben wird.
Richtiger wird es, wenn Du die Adresse bei jedem Zugriff um 2 erhöhst:
1 | for(addr=0x00;addr<=255;addr+=2)
|
Besser ist es aber, die Schreibadresse ins EEPROM gleich als Pointer zu
definieren. Dann funktioniert addr++ auch wieder: ein Pointer wird dabei
um die Größe des Zielobjekts erhöht, in Deinem Fall (unsigned int) also
um 2.
Als Anfänger benutzt Du lieber einen Pointer addr_ptr und zusätzlich
eine Zählvariable i. Sonst schreibst Du wahrscheinlich statt 256 Worte
nur 128 in das EEPROM:
1 | unsigned int *addr_ptr;
|
2 | unsigned int i;
|
3 |
|
4 | addr_ptr = 0;
|
5 | for(i=0; i <= 255; i++)
|
6 | {
|
7 | eeprom_write_word(addr_ptr, 0xAAAA);
|
8 | addr++;
|
9 | }
|
Ohne i geht es auch, aber nicht mehr so einfach zu lesen:
1 | unsigned int *addr_ptr;
|
2 |
|
3 | for (addr_ptr = 0x00; addr_ptr < (unsigned int*) 0x200; addr_ptr++)
|
4 | {
|
5 | eeprom_write_word (addr_ptr, 0xAAAA);
|
6 | }
|
Gruß, Stefan