roboforum.ru

Технический форум по робототехнике.

EEPROM в Mega16

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

EEPROM в Mega16

Сообщение KiCom » 05 июл 2006, 14:08

Что это такое я вроде понял,что это энергонезависимая память в МК, если проводить аналогию с програмированием на ПК то это запись и чтение из файла, но как этим пользовать?
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение avr123.nm.ru » 05 июл 2006, 14:14

как в примерах к CVAVR и PROTEUS
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение 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 , весь смысл теряеться.
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение avr123.nm.ru » 05 июл 2006, 15:47

ну дак не пиши =10
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение mayso » 11 июл 2006, 08:05

А что вы имеете в виду говоря
НО! что в ней храниться изначально?
?
mayso
 
Сообщения: 25
Зарегистрирован: 10 июл 2006, 11:32
Откуда: Владивосток

Сообщение KiCom » 11 июл 2006, 08:35

При инициализации переменной
eeprom int a;
a=?
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение wolf » 11 июл 2006, 10:37

Что прошьёте.
Если ничего не прошивали - 0xFF.
wolf
 
Сообщения: 63
Зарегистрирован: 23 июл 2005, 00:39
Откуда: Казань


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4