Доброго времени суток всем. Проблемы с 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" ); } } С ним почемуто всё нормально пишется, только вот почему???
|