Hallo Leute,
Hab im moment vor während meiner Programmlaufzeit, Daten in das EEPROM des ATmega 128 zu schreiben und wieder herauszulesen.
Dazu habe ich mir folgendes angelegt:
Folgende Funktionen hab ich mir überlegt um die Daten zu speichern und wieder zu lesen. Nur leider geht das nicht so wie ich mir das vorstelleCode:unsigned char EEPROM config1, config2, config3, checksum;
Schon mal tausend Dank für euere HilfeCode:/**********************************************************************\ * Funktionsname:loadconfig * * Kurzbeschreibung: * Funktion vom Einlesen der letzten Konfiguration aus dem EEPROM * \**********************************************************************/ void loadconfig(void) { if (!((config1 + config2 + checksum) & 0xFF)) { SPCR = config1; // laden der Einstellungen des SPCR Registers SPSR = config2; // laden der Einstellungen des SPSR Registers // flags = config3; // laden der Einstellungen der globalen Flag variablen USART0_TransmitStrin_p(config); } else USART0_TransmitStrin_p(noconfig); } /**********************************************************************\ * Funktionsname:writeconfig * * Kurzbeschreibung: * Funktion vom Einlesen der letzten Konfiguration aus dem EEPROM * \**********************************************************************/ void writeconfig(void) { cli(); // Abschalten aller Interrupts während des EEPROM schreibens config1 = SPCR; // Schreiben der SPCR Daten in das EEPROM config2 = SPSR; // Schreiben der SPSR Daten in das EEPROM //config3 = flags;// Schreiben der globalen Flags in das EEPROM checksum = 0-(config1 + config2); // erstellen und speichern der Checksumme sei(); // Aktivieren der Interrupts USART0_TransmitStrin_p(cfgwrite); }
Holger
Lesezeichen