Привет!
Подскажите пожалуйста в чем у меня ошибка.
Пытаюсь записать байт в EEPROM память и считать.
CODE:
EEPROM_write(0,0x1A); // запись в нулевую ячейку значения 0х1А
if(EEPROM_read(0) == 0x1A) // считывание значения из ячейки по адресу 0 и сравнение его с записаным
while(1)
{ // мигание светодиодом
PORTC |= 0b00000010;
_delay_ms(1000);
PORTC &= ~0b00000010;
_delay_ms(1000);
}
По идее светодиод должен замигать.
Вот функции записи/чтения:
CODE:
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
while(EECR & (1<<EEWE)); /*Ждать завершения предыдущей записи*/
EEAR = uiAddress; /*Проинициализировать регистры*/
EEDR = ucData;
EECR |= (1<<EEMWE); /*Установить флаг EEMWE*/
EECR |= (1<<EEWE); /*Начать запись в EEPROM*/
}
unsigned char EEPROM_read(unsigned int uiAddress)
{
while(EECR & (1<<EEWE)); /*Ждать завершения предыдущей записи*/
EEAR = uiAddress; /*Проинициализировать регистр адреса*/
EECR |= (1<<EERE); /*Выполнить чтение*/
return EEDR;
}
Скопировал их из datasheet. |