ATMEGAxx Variable ins EEPROM

Gast #1043085
Lesenswert?

Hi zusammen,

versuche momentan mit nem ATMEGA16 eine Variable ins EEPROM zu 
speichern.
Dazu mein folgender, banaler Testcode:

#include <stdint.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>

char test;

int main(void)
{
  DDRB = 0xFF;

  eeprom_write_byte((uint8_t *)0x01, 0x0F);
  test = eeprom_read_byte((uint8_t *)0x01);

   PORTB = test;
}

Wenn beide Zeilen einkommentiert sind, wird am PORTB die erhoffte 0x0F 
ausgegeben. Nun würde ich erwarten, dass wenn ich Zeile 1, also 
write_byte... auskommentiere, dass dann die zuvor gespeicherte 
Information ebenfalls wieder am Port ausgegeben wird.
Es bleiben allerdings alle LEDS aus :(

Was mache ich falsch?
Gast #1043103
Lesenswert?

Hey super, danke !
Es gibrt tatsächlich eine solche Fuse.

--> EESAVE

Ist das Bit gesetzt, wird bei jedem ChipErase das EEPROM mit gelöscht.
Steht es auf 0, bleibt das EEPROM unberührt :)


--> Danke für die schnelle Hilfe
Gast #1043112
Lesenswert?

>> Ausserdem sollte man auf das Ende des Schreibzyklusses warten

>Macht die Lib doch schon.

Hab ich auch gerade gelesen. Man lernt nie aus ;)
Sonst würde das mit den eeprom_block_write()
ja auch nicht funktionieren.

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