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 Quote
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 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.