Hallo zusammen, kann mir jemand helfen warum das nicht geht? void dateischreiben (unsigned int Datei) { eeprom_wb((unsigned char)&eepromval[(0+Datei)],Parameter.Closingdir); } Günter
Die Frage ist ein Witz oder ? Anhand der Variablennamen kann man gerade mal vermuten, daß da irgendein OS mit Dateiverwaltung mit im Spiele ist. Also CPU, Compiler, Target-OS, Deine Funktionsprototypen und Deine Source der nichtfunktionierenden eeprom_wb() must Du schon uns Nicht-Hellsehern mitteilen. Peter
Sorry, da war ich wohl absolut neben der Kappe vorhin. Also, geht um GCC mit ATmega103. Problem ist, Compiler meckert mit: Cast from pointer to integer of different size Cast to pointer from integer of different size Das Problem liegt wohl an der Berechnung des Zugriffsindex (1+Datei). Ohne "+Datei geht es. Source: static unsigned char eepromval[600]__attribute__((section(".eeprom"))); void dateischreiben (unsigned int Datei) { eeprom_wb((unsigned char)&eepromval[(0+Datei)],Parameter.Closingdir); } Protype: void dateischreiben (unsigned int Datei); Gruss Günter
eeprom_wb() gibt's nicht mehr. ;-) Anyway, warum castest Du denn die EEPROM-Adresse auf unsigned char? Laß sie, wie sie ist, und es sollte gehen, oder caste auf unsigned char * (was etwas sehr Verschiedenes ist). Das alles ganz besonders angesichts der Tatsache, daß Deine EEPROM-Variable mehr als 256 Elemente enthält... Das muß dann schiefgehen.
Hallo Jörg, Danke für die schnelle Hilfe. eeprom_wb() gibts nicht mehr? Gibt es einen Ersatz dafür in der neuesten version? Günter
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.