Спасибо, хорошо расписали. Вроде понял.
Не думал, что так сложно будет записать что-то в EEPROM.
Значит вначале программы мне необходимо добавить 2 строчки для первой версии программы:
#define EEWE 1
#define EEMWE 2
И оптимизировать при компиляции.
То есть текст программы должен принять вид:
Цитата
#define EEWE 1
#define EEMWE 2
// Declare your global variables here
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE))
;
/* Set up address and data registers */
EEAR = uiAddress;
EEDR = ucData;
/* Write logical one to EEMWE */
EECR |= (1<<EEMWE);
/* Start eeprom write by setting EEWE */
EECR |= (1<<EEWE);
}
А основной цикл:
Цитата
while (1)
{
// Place your code here
EEPROM_write(0x00,0x00);
EEPROM_write(0x01,0xAA);
};
При компиляции ошибок не выдаёт. Оптимизировать пока не нашёл как.
А вообще странно. Неужели никто ничего не пишет в EEPROM? CodeVisionAVR вроди бы многие пользуются.
Получилось!

Сделал так:
Цитата
/* Write logical one to EEMWE */
EECR |= (1<<EEMWE);
/* Start eeprom write by setting EEWE */
#asm("sbi EECR,1");
Запустил в отладчике - записало 2 байта в EEPROM
Но всё равно вопрос остался актуальным - как сделать на С. Пример записи взят из документации. Должен работать же.
Сообщение отредактировал Владимир_КПИ - Feb 10 2008, 21:09