Вот что было найдено:
- Код: Выделить всё • Развернуть
// EEPROM access example
// CodeVisionAVR C Compiler
// (C) 2000-2002 HP InfoTech S.R.L.
// www.hpinfotech.ro
// Chip: AT90S2313
// Memory Model: TINY
// Data Stack Size: 64 bytes
flash char f[]="This is a test";
#pragma warn-
eeprom char e[16];
#pragma warn+
char r[16];
void main (void)
{
char flash *ptr_to_flash;
char eeprom *ptr_to_eeprom;
char *ptr_to_ram;
// copy the string f from FLASH to
// the string e in EEPROM
ptr_to_flash=f;
ptr_to_eeprom=e;
while (*ptr_to_flash)
*ptr_to_eeprom++=*ptr_to_flash++;
// copy the string e from EEPROM to
// the string r in RAM
ptr_to_eeprom=e;
ptr_to_ram=r;
while (*ptr_to_eeprom)
*ptr_to_ram++=*ptr_to_eeprom++;
// stop here
while (1);
}
Из чего я понял что необходимо объявить переменную так:
- Код: Выделить всё • Развернуть
eeprom char e[16];
или так:
- Код: Выделить всё • Развернуть
eeprom int x;
потом в программе изменяем ее как хотим и в ней будет храниться последняя запись. НО! что в ней храниться изначально?
Если написать вот так:
- Код: Выделить всё • Развернуть
eeprom int y=10;
то изначально в переменной храниться число 10, но при каждом запуске МК он по идеи должне исполнять эту строчку и присваивать ей значение 10 , весь смысл теряеться.