Hi Leutz !
Versuch hier grad was ins EEPROM vom Mega88 zu schreiben und dieses dann wieder auszulesen. Die ausgelesenen Werte werden dann einfach ans Terminal geschickt.
Die Funktionen EEPROM_write und EEPROM_read hab ich aus dem Datenblatt.
Leider erscheint nichts am Terminal...![]()
Hab auch schonmal das EEPROM Hexfile mit AVR Studio ausgelesen, welches aber dann nicht wirklich so aussieht wie ichs eigntlich erwarten würde.
Könnt ihr ma drüberschauen ??
Gruß schampCode:#include <iom88.h> #include <ina90.h> #include "sw_uart.h" void EEPROM_write(unsigned int adress, char data); char EEPROM_read(unsigned int adress); __task void main(void) { unsigned int adresse=0; char datenbyte=0; char byte1=0; char byte2=0; char byte3=0; char byte4=0; __enable_interrupt(); /* AFFE ins EEPROM schreiben */ adresse = 0x0000; datenbyte = 0x0A; EEPROM_write(adresse, datenbyte); adresse = 0x0008; datenbyte = 0x0F; EEPROM_write(adresse, datenbyte); adresse = 0x0010; datenbyte = 0x0F; EEPROM_write(adresse, datenbyte); adresse = 0x0018; datenbyte = 0x0E; EEPROM_write(adresse, datenbyte); /* AFFE wieder auslesen */ byte1 = EEPROM_read(0x0000); byte2 = EEPROM_read(0x0008); byte3 = EEPROM_read(0x0010); byte4 = EEPROM_read(0x0018); /* und ans Terminal senden */ while(1) { send_one_byte(byte1); send_one_byte(byte2); send_one_byte(byte3); send_one_byte(byte4); send_one_byte('\r'); send_one_byte('\n'); } } void EEPROM_write(unsigned int adress, char data) { /* Warten bis vorheriger Schreibvorgang beendet */ while(EECR & (1<<EEPE)); EEAR = adress; // Adresse an der das Byte im EEPROM geschrieben werden soll EEDR = data; // Datenbyte, welches im EEPROM gespeichert werden soll EECR |= (1<<EEMPE); EECR |= (1<<EEPE); // Starte EEPROM Write } char EEPROM_read(unsigned int adress) { while(EECR & (1<<EEPE)); EEAR = adress; // Adresse an der Byte im EEPROM ausgelesen werden soll EECR |= (1<<EERE); // Auslesen starten return EEDR; }







Zitieren

Lesezeichen