Технический форум по робототехнике.
KiCom » 05 июл 2006, 14:08
Что это такое я вроде понял,что это энергонезависимая память в МК, если проводить аналогию с програмированием на ПК то это запись и чтение из файла, но как этим пользовать?
avr123.nm.ru » 05 июл 2006, 14:14
как в примерах к CVAVR и PROTEUS
KiCom » 05 июл 2006, 14:35
Вот что было найдено:
- Код: Выделить всё • Развернуть
// 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 , весь смысл теряеться.
avr123.nm.ru » 05 июл 2006, 15:47
ну дак не пиши =10
mayso » 11 июл 2006, 08:05
А что вы имеете в виду говоря
НО! что в ней храниться изначально?
?
KiCom » 11 июл 2006, 08:35
При инициализации переменной
eeprom int a;
a=?
wolf » 11 июл 2006, 10:37
Что прошьёте.
Если ничего не прошивали - 0xFF.