??? 12/25/04 13:27 Read: times |
#83846 - Xmas gift Responding to: ???'s previous message |
Unfortunately you have to read the datasheet to decipher my code snippet blow:
// EEPROM VARIABLES xdata unsigned short int EEWU_indexTimer _at_ 0x00; xdata unsigned short int EEWU_deflectorTimer _at_ 0x02; xdata unsigned short int EEWU_doorTimer _at_ 0x04; xdata unsigned char EEWU_roomRelayDelay _at_ 0x06; xdata unsigned char EEWU_boxRelayOn _at_ 0x07; xdata unsigned char EEWU_fuseSimulatorOn _at_ 0x08; xdata unsigned char EEWU_itemCountPulseHi _at_ 0x09; xdata unsigned short int EEWU_itemCountPulseLow _at_ 0x0A; xdata unsigned short int EEWU_doorOpensMode _at_ 0x0C; /****************************************************************************** * NAME : EEWU_eepromAccessEnable * DESCRIPTION : This Function enables onchip EEPROM access of the processor * INPUT : Nothing * OUTPUT : Nothing ******************************************************************************/ void EEWU_eepromAccessEnable(void) { WMCON |= EEMEN_; //EEPROM access enable } /****************************************************************************** * NAME : eepromWriteEnable * DESCRIPTION : This Function enables on chip EEPROM write of the processor * INPUT : Nothing * OUTPUT : Nothing ******************************************************************************/ static void eepromWriteEnable(void) { WMCON |= EEMWE_; //Write enable } /****************************************************************************** * NAME : eepromWriteDisable * DESCRIPTION : This Function disables on chip EEPROM write of the processor * INPUT : Nothing * OUTPUT : Nothing ******************************************************************************/ static void eepromWriteDisable(void) { WMCON &= ~EEMWE_; //Write disable } /****************************************************************************** * NAME : eepromReadyToWrite * DESCRIPTION : This Function shows if EEPROM is ready to write * INPUT : Nothing * OUTPUT : bit 1 if EEPROM is ready to write ******************************************************************************/ static unsigned char eepromReadyToWrite(void) { return(WMCON & EERDY_); } /****************************************************************************** * NAME : EEWU_writeByte * DESCRIPTION : This Function writes a byte to EEPROM. * INPUT : char* Address of byte to be stored and unsigned char to write * OUTPUT : Nothing ******************************************************************************/ void EEWU_writeByte(unsigned char* EE_ptr, // out unsigned char value8) { eepromWriteEnable(); *EE_ptr = value8; while(eepromReadyToWrite() == 0) { } // wait till byte is written (about 2.5 msec) eepromWriteDisable(); } /****************************************************************************** * NAME : EEWU_writeShortInt * DESCRIPTION : This Function writes short int to EEPROM upper byte first * INPUT : int* Address of byte to be stored,unsigned short to write * OUTPUT : Nothing ******************************************************************************/ void EEWU_writeShortInt(unsigned short int* EE_ptr2, // out unsigned short int value16) { unsigned char tempVar; unsigned char cntr; unsigned char* charPtr = (unsigned char*)EE_ptr2; tempVar = value16 & 0x0ff; // lower byte for(cntr = 0; cntr < 2; cntr++, charPtr++) { EEWU_writeByte(charPtr,tempVar); tempVar = value16 >> 8; // higher byte } } Merry christmas Mahmood |
Topic | Author | Date |
Writing/Reading EEprom | 01/01/70 00:00 | |
8051 | 01/01/70 00:00 | |
Didn't search first (again) | 01/01/70 00:00 | |
what a funny guy you are.. | 01/01/70 00:00 | |
EEPROM read/write | 01/01/70 00:00 | |
internal | 01/01/70 00:00 | |
More details? | 01/01/70 00:00 | |
8051 | 01/01/70 00:00 | |
Xmas gift | 01/01/70 00:00 | |
functions declared as static | 01/01/70 00:00 | |
PC-LINT | 01/01/70 00:00 | |
it's just static![]() | 01/01/70 00:00 | |
Writing to internal eeprom | 01/01/70 00:00 | |
EEprom | 01/01/70 00:00 |