Forum: Mikrocontroller und Digitale Elektronik Codevision & EEprom


von Alexander (Gast)


Lesenswert?

Hallo,
ich benutze einen ATmega32 und versuche jetzt schon eine Weile
Variablen im internen EEprom abzuspeichern. Zur Programmierung verwende
ich Codevision. Dieser moniert aber auch, dass "uninitialized EEPROM"
ist (Warnung). Das einzige was ich herausgefunden habe, dass im
STARTUP.asm das Register EECR gelöscht wird. Jede Änderung bewirkt aber
nichts. Was tun?

Gruß Alex

von Dominik (Gast)


Lesenswert?

Poste erstmal deinen Code...

Bei mir funktioniert es so:

eeprom char value = 0;

Dominik

von crazy horse (Gast)


Lesenswert?

so isses.
Variable als eeprom deklarieren und Wert zuweisen, ferig.

von Alexander (Gast)


Lesenswert?

Also, ich habe 2 Funktionen, die ich per Tastendruck aufrufe. In der
Funktion Read_MBR() lese ich ein Array aus und weise ein Wert einer
Variablen im EEPROM zu und gebe den Wert aber auch gleichzeitig seriell
auf dem PC aus (der Wert stimmt).
In der Funktion Send_MBR() hole ich mir den im EEPROM zugewiesenen Wert
zurück und will ihn ebenfalls anzeigen lassen, nur das hier was falsches
drinsteht!!

eeprom struct eeprom_structure
{
    unsigned char SecPerClus;
}VID;

void Read_MBR()
{
     char Buffer[512];
     char temp=1;
     while (temp)
    temp=mmc_read_sector(0,Buffer);
    VID.SecPerClus=Buffer[SECTOR_CLUSTER];
    putchar(Buffer[SECTOR_CLUSTER]);
}

void Send_MBR()
{
    char xxx[30];
    unsigned char temp;
    temp=VID.SecPerClus;
    sprintf(xxx,"VID.RootDir:",temp);
    puts(xxx);
}


Meine Vermutung und Suche nach dem Problem endete an der STARTUP.asm,
in der in den Anfangszeilen folgender Code zu finden ist:
;EXAMPLE STARTUP FILE

  .EQU __CLEAR_START=0X60 ;START ADDRESS OF SRAM AREA TO CLEAR
        ;SET THIS ADDRESS TO 0X100 FOR THE
        ;ATmega128 OR ATmega64 CHIPS
  .EQU __CLEAR_SIZE=256   ;SIZE OF SRAM AREA TO CLEAR IN BYTES

  CLI    ;DISABLE INTERRUPTS
  LDI  R30,0x08
  OUT  EECR,R30  ;DISABLE EEPROM ACCESS

Und nun? Ich probiere nochmal auf einfacherem Wege das EEPROM zu
beschreiben, wenn das bei euch auf Anhieb funktioniert??
Noch jemand ein Tip?

Gruß Alex

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.