mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Codevision & EEprom


Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste erstmal deinen Code...

Bei mir funktioniert es so:

eeprom char value = 0;

Dominik

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so isses.
Variable als eeprom deklarieren und Wert zuweisen, ferig.

Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.