Пытаюсь записать пару чисел в EEPROM МК ATmega16.
Взял стандартную функцию записи из документации:
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);
}
При компиляции выдаёт ошибки:
undefined symbol 'EEWE'
undefined symbol 'EEMWE'
Попробовал так:
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
/* Wait for completion of previous write */
while(EECR & (1<<EECR.1))
;
/* Set up address and data registers */
EEAR = uiAddress;
EEDR = ucData;
/* Write logical one to EEMWE */
EECR |= (1<<EECR.2);
/* Start eeprom write by setting EEWE */
EECR |= (1<<EECR.1);
}
Ошибки не выдаёт, но ничего не пишет в EEPROM
В основном цикле программы пишу:
EEPROM_write(0x00,0x00);
EEPROM_write(0x01,0xAA);
Для написания программы использую CodeVisionAVR. В стандарный листинг программы дописал лишь описание функции. А в основном цикле - вызов функции с параметрами.
Подскажите, что делаю не так.