Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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

List of 14 messages in thread
TopicAuthorDate
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      

Back to Subject List