Пытаюсь записать пару чисел в 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. В стандарный листинг программы дописал лишь описание функции. А в основном цикле - вызов функции с параметрами.
Подскажите, что делаю не так.
|