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