Progrmmiere eben meinen CAN128 mit dem GCC. Leider sind die vorgefertigten EEPROM Routinen ja nicht verwendbar (oder doch irgendwie?). Nunja hab mir meine eigene Lese- und Schriebroutine gebastelt, nur muss ich nun feststellen, dass nichts im EEPROM geschriben wird. Hab mich dazu an das Beispiel auf Seite 24 des Datenblatts gehalten und ... EECR |= (1<<EEMWE); EECR |= (1<<EEWE); implementiert. So geht es aber nicht! Hab festgestellt, das der GCC daraus macht: lds R24, 0x003F ori R24, 0x04 sts 0x003F, R24 lds R24, 0x003F ori R24, 0x02 sts 0x003F, R24 Es gibt ja die Einschränkung mit den 4 Takten nach dem Setzen von EEMWE, offensichtlich stört dies aber den GCC nicht - was kann ich nun machen das ich (in C) dieses Bit schnell genug gesetz bekomme? Oder muss ein inline Assebler ran?
Hallo, schau mal in das AVR GCC Manual, da gibt es unter Modules einen EIntrag "EEPROM handling" da sollte alles beschrieben sein Aber warum sollten die EEPROM Routinen nicht verwendbar sein?? Gruss
Aus der Doku zu AVR-LIBC: Detailed Description #include <avr/eeprom.h> This header file declares the interface to some simple library routines suitable for handling the data EEPROM contained in the AVR microcontrollers. The implementation uses a simple polled mode interface. Applications that require interrupt-controlled EEPROM access to ensure that no time will be wasted in spinloops will have to deploy their own implementation. Note: All of the read/write functions first make sure the EEPROM is ready to be accessed. Since this may cause long delays if a write operation is still pending, time-critical applications should first poll the EEPROM e. g. using eeprom_is_ready() before attempting any actual I/O. This library will not work with the following devices since these devices have the EEPROM IO ports at different locations: AT90CAN128 ATmega48 ATmega88 ATmega165 ATmega168 ATmega169 ATmega325 ATmega3250 ATmega645 ATmega6450
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.