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
Poste erstmal deinen Code... Bei mir funktioniert es so: eeprom char value = 0; Dominik
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.