Ich habe leider weder AVR noch JTAG zur Hand und muss in meinem
funktionierenden Code ein EEPROM uint32_t gegen int32_t tauschen.
Bin mir bei source und target ziemlich unsicher und würde mir gerne die
folgenden Zeilen von Jemanden bestätigen lassen, der öfters mit
"eeprom_write_block" unterwegs ist ;)
*.h
1 | //eep
|
2 | //extern uint32_t EEMEM eeCalibrationAddend_b;
|
3 | extern int32_t EEMEM eeCalibrationAddend_b;
|
*.c
1 | /* saved in EEPROM */
|
2 | //int16_t calibrationAddend_b;
|
3 | int32_t calibrationAddend_b;
|
4 |
|
5 | ...
|
6 |
|
7 |
|
8 | void get_Cali() {
|
9 | ...
|
10 | //calibrationAddend_b = eeprom_read_dword(&eeCalibrationAddend_b);
|
11 | eeprom_write_block(&calibrationAddend_b, &eeCalibrationAddend_b, sizeof(eeCalibrationAddend_b));
|
12 | }
|
13 |
|
14 |
|
15 | void save_Cali() {
|
16 | ...
|
17 | //eeprom_update_dword(&eeCalibrationAddend_b, calibrationAddend_b);
|
18 | eeprom_update_block(&calibrationAddend_b, &eeCalibrationAddend_b, sizeof(eeCalibrationAddend_b));
|
19 | }
|
Passt das so oder habe ich noch grobe Schnitzer drin?