eeprom_read_block() liefert 'keine' Daten beim ersten lesen

Gast #1194504
Lesenswert?

Hallo,

beim Mega16 werden die Daten aus EEPROM beim ersten Lesen nach RESET 
nicht gelesen. Beim zweiten Lesen werden alle DAten korrekt gelesen.

Code:
1
uint8_t data[8];
2
eeprom_read_block(&data, 0x00, sizeof(data));

ich verwende:
AVR Studio: 4.14
AVR Libc 1.6.2


Kennt jemand das Problem?
#1194929
Lesenswert?

Aus der avr_libc:

5.4.3 Function Documentation
5.4.3.1 void eeprom_read_block (void  buf, const void  addr, size_t n)
Read a block of n bytes from EEPROM address addr to buf.

Was heisst denn "nicht gelesen"? Irgendwas wird doch zurückkommen? 
Inhalt falsch? Alle Bytes betroffen?


Gruß, Stefan
#1195257
Lesenswert?

yeyo wrote:
> Code:
>
1
> uint8_t data[8];
2
> eeprom_read_block(&data, 0x00, sizeof(data));
3
>

Probier mal:
1
uint8_t data[8];
2
while(!eeprom_is_ready()){}  //Warten bis EEPROM bereit
3
eeprom_read_block(&data, 0x00, sizeof(data));
Wahrscheinlich willst du was aus dem EEPROM lesen, das EEPROM ist aber 
noch gar nicht bereit dafür...
Gast #1195295
Lesenswert?

>Wahrscheinlich willst du was aus dem EEPROM lesen, das EEPROM ist aber
>noch gar nicht bereit dafür...

Das wäre aber nicht im Sínne des (avr-libc-)Erfinders, denn in der Doku 
heisst es dazu:

>Note:
>All of the read/write functions first make sure the EEPROM is ready to >be 
accessed.

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren