We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello all, I wrote the following functions for reading and writing to the internal EEPROM but for some reason it not working. Can some tell me what's wrong in this code? void intEepromWr(void *pBuff,uint iEepromAddr,uint iBuffLen){ volatile uchar xdata *pIntEeprom = (uchar xdata *)iEepromAddr; EECON = 0xFC; //Reset value EETIM = 0x37; //5*11.0592MHz in normal mode for (pSram=pBuff ; iBuffLen>0 ; iBuffLen--,pSram++,pIntEeprom++) { while(EECON & 0x01);// Wait while eeprom busy EECON = 0x02;// EEE=1 EEPROM mapped *pIntEeprom = *pSram; // Write data to eeprom EECON = 0x50; EECON = 0xA0; } } void intEepromRd(void *pBuff,uint iEepromAddr,uint iBuffLen){ volatile uchar xdata *pIntEeprom = (uchar xdata *)iEepromAddr; EECON = 0xFC; //Reset value EETIM = 0x37; //5*11.0592MHz in normal mode EECON = 0x02; // EEE=1 EEPROM mapped for (pSram=pBuff ; iBuffLen>0 ; iBuffLen--,pSram++,pIntEeprom++) { while(EECON & 0x01); // Wait while eeprom busy *pSram = *pIntEeprom; // Read data from EEPROM } EECON &= 0xFC; } Thanks a lot, Roberto