Durisian Posted April 1, 2010 Report Posted April 1, 2010 Hey Guys! I'm trying to read and write to the internal eeprom of a pic18f4620 I seem to be only able to access the first 256 bytes Basic run down: Init - for (i=0;i<0x100;i++) MIOS_EEPROM_Write(i, 0x41); // letter A for (i=0;i<0x100;i++) MIOS_EEPROM_Write(i + 0x100, 0x42); // letter B for (i=0;i<0x100;i++) MIOS_EEPROM_Write(i + 0x200, 0x43); // letter C display_tick MIOS_LCD_CursorSet(0x00); for (i=0;i<0xf;i++) MIOS_EEPROM_Read(i); Shows CCCCCCCCCCCCCCCC I expected AAAAAAAAAAAAAAAA also display_tick MIOS_LCD_CursorSet(0x00); for (i=0;i<0xf;i++) MIOS_EEPROM_Read(i + 0x100); also shows CCCCCCCCCCCCCCCC Is there an issue thats not letting me go over address over 256?... or more likely - am I just a retard
Durisian Posted April 2, 2010 Author Report Posted April 2, 2010 (edited) got it going unsigned int extended_MIOS_EEPROM_Read(unsigned int address) { EEADRH = address >> 8; // set eeprom address high byte return MIOS_EEPROM_Read(address & 0xFF); } void extended_MIOS_EEPROM_Read(unsigned int address, unsigned char data) { EEADRH = address >> 8; // set eeprom address high byte MIOS_EEPROM_Write(address & 0xFF, data); } Edited April 2, 2010 by Durisian
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now