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 + -
显示快捷键?