Jump to content

Recommended Posts

Posted

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 cry.png

Posted (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 by Durisian

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...