Ich habe mehrere Variablen im EEPROM, ich beschreibe ihn und lese ihn
aus. Nur mein Problem ist, das er es (wahrscheinlich) falsch ausließt,
bzw. nur 8bit:
Schreiben:
1 | void SaveDataToEE()
|
2 | {
|
3 | //Channel 1 0x10 <-> 0x14
|
4 | eeprom_update_word(0x10,ChannelTop[0]);
|
5 | eeprom_update_word(0x12,ChannelMiddle[0]);
|
6 | eeprom_update_word(0x14,ChannelBot[0]);
|
7 |
|
8 | //Channel 2 0x16 <-> 0x20
|
9 | eeprom_update_word(0x16,ChannelTop[1]);
|
10 | eeprom_update_word(0x18,ChannelMiddle[1]);
|
11 | eeprom_update_word(0x20,ChannelBot[1]);
|
12 |
|
13 | //Channel 3 0x22 <-> 0x26
|
14 | eeprom_update_word(0x22,ChannelTop[2]);
|
15 | eeprom_update_word(0x24,ChannelMiddle[2]);
|
16 | eeprom_update_word(0x26,ChannelBot[2]);
|
17 |
|
18 | //Channel 4 0x28 <-> 0x32
|
19 | eeprom_update_word(0x28,ChannelTop[3]);
|
20 | eeprom_update_word(0x30,ChannelMiddle[3]);
|
21 | eeprom_update_word(0x32,ChannelBot[3]);
|
22 | }
|
und lesen:
1 | void ReadChannelFromEE()
|
2 | {
|
3 | //Channel 1
|
4 | ChannelTop[0] = eeReadWord(0x10);
|
5 | ChannelMiddle[0] = eeReadWord(0x12);
|
6 | ChannelBot[0] = eeReadWord(0x14);
|
7 |
|
8 | //Channel 2
|
9 | ChannelTop[1] = eeReadWord(0x16);
|
10 | ChannelMiddle[1] = eeReadWord(0x18);
|
11 | ChannelBot[1] = eeReadWord(0x20);
|
12 |
|
13 | //Channel 1
|
14 | ChannelTop[2] = eeReadWord(0x22);
|
15 | ChannelMiddle[2] = eeReadWord(0x24);
|
16 | ChannelBot[2] = eeReadWord(0x26);
|
17 |
|
18 | //Channel 1
|
19 | ChannelTop[3] = eeReadWord(0x28);
|
20 | ChannelMiddle[3] = eeReadWord(0x30);
|
21 | ChannelBot[3] = eeReadWord(0x32);
|
22 | }
|
Der EEPROM Inhalt schaut folgendermaßen aus, das scheint zu passen
(IntelHex!):
1 | :10000000FF04FFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
|
2 | :100010001A0FEB0BBD08120FE20BFFFFFFFFFFFFF4
|
3 | :10002000B208060FD50BA408150FFFFFFFFFFFFF57
|
4 | :10003000E40BB308FFFFFFFFFFFFFFFFFFFFFFFF22
|
5 | :10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
|
6 | :10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
|
7 | :10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
|
8 | :10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
|
9 | :10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
|
10 | :10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
|
11 | :1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
|
12 | :1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
|
13 | :1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
|
14 | :1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
|
15 | :1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
|
16 | :1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
|
17 | :10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
18 |
|
19 | //... gekürzt
|
Woran könnte das liegen? Ich bekomme auch die Cast Warnung vom Compiler,
aber das dürfte ja erstmal nicht ganz so schlimm sein oder?!