Доброго времени суток всем. Проблемы с eeprom для Atmega 8. Пытаюсь писать в eeprom затем сразу читаю от туда байт (соответственно выждав готовности), читается как 0xFF, хотя в симуляторе VMLAB всё работает отлично!!! Контролирую прочитанный байт выводом на порт D.
Текст программы
void main (void )
{
while(EECR & (1<<EEWE));
EEAR=10;
EEDR=0x01;
while(EECR & (1<<EEWE));
EECR|=(1<<EEMWE);
EECR|=(1<<EEWE);
DDRD=255;
while(EECR & (1<<EEWE));
EEAR=10;
EECR|=(1<<EERE);
PORTD=EEDR;
while(1);
}
Заранее благодарен!!!
Добавлено спустя 33 минуты 37 секунд:
Кто просматривает данную тему, всё нормально заработало, нащёл код вида
int main(void)
{
// Записать 10 байтов в EEPROM
for (int i = 0; i < 10; i++)
{
// Ждать готовность к записи
while ( EECR & 0x02 );
EEAR = i; // Адрес
EEDR = i + 0x20; // Данные
EECR = 0x04; // Разрешить запись
EECR = 0x02; // Запись
//asm( "sbi 0x1C, 1" ); (1)
}
// Читать 10 байтов из EEPROM
for (int i = 0; i < 10; i++)
{
EEAR = i; // Адрес
EECR = 0x01; // Чтение
}
// Спать
while ( 1 )
{
MCUCR = 0x20;
asm( "sleep" );
}
}
С ним почемуто всё нормально пишется, только вот почему???