eeprom.c
来自「单片机,泰坦电源设备通讯程序.根据协议从泰坦设备中获得状态」· C语言 代码 · 共 47 行
C
47 行
//pragma ot(4)
#define EE_GLOBALS
#include "Macro.h"
#include "Main.h"
void ReadEE(unsigned char xdata *Buff, unsigned int len)
{
unsigned int data i;
unsigned int data mAddr;
unsigned char data cTmp;
mAddr = 0;
for (i = 0; i < len; i++) {
EA = 0;
WMCON |= EEMEN_; // enable EEPROM
cTmp = XBYTE[mAddr++]; // read value
WMCON &= ~EEMEN_; // disable EEPROM
EA = 1;
*(Buff++) = cTmp; // save value
}
}
unsigned char WriteEE(unsigned char xdata *Source, unsigned int len)
{
unsigned int data mAddr;
unsigned int data iTmp;
unsigned char data cTmp;
unsigned char xdata * cPtr;
unsigned char xdata mBuff[sizeof(Port1Cmd) + sizeof(Port1Cmd) + 20];
cPtr = Source;
mAddr = 0;
for (iTmp = 0; iTmp < len; iTmp++) {
cTmp = *(cPtr++);
EA = 0;
WMCON |= (EEMEN_ | EEMWE_); // enable EEPROM and set write bit
XBYTE[mAddr++] = cTmp; // write value
while ((WMCON & EERDY_) == 0); // wait until value programmed
WMCON &= ~(EEMWE_ | EEMEN_); // disable EEPROM and write strobe
EA = 1;
}
ReadEE( mBuff, len );
if ( memcmp(mBuff, Source, len) == 0 ) return 1;
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?