|
/*
* This file contains the frame-work for the EEPROM at89c8252
*/
#include #define EEPROM_W WMCON|=EEMEN_|EEMWE_ data char buf[]={1,2,3,4,5,6,7,8,9,0,0,0,0,0}; void main(void){ //test }
E-mail:
info@telesys.ru
#include
#define EEPROM_R WMCON|=EEMEN_
#define EEPROM_endW WMCON&=(EEMEN_|EEMWE_)^0xff
#define EEPROM_endR WMCON&=EEMEN_^0xff
#define EEPROM_wait while(!(WMCON&EERDY_))
void WriteEEBuf(unsigned int addr,unsigned char data *buf,unsigned char cnt){ //write cnt bytes from buf->adr
EEPROM_W;
while(cnt>0){
cnt--;
XBYTE[addr]=*buf;
addr++;
buf++;
EEPROM_wait;
}
EEPROM_endW;
}
void WriteEEByte(unsigned int addr,unsigned char buf){ //one byte buf->addr
EEPROM_W;
XBYTE[addr]=buf;
EEPROM_wait;
EEPROM_endW;
}
void ReadEEBuf(unsigned int addr,unsigned char data *buf,unsigned char cnt){ //read cnt EEPROM->buf
EEPROM_R;
while(cnt>0){
cnt--;
*buf=XBYTE[addr];
addr++;
buf++;
}
EEPROM_endR;
}
unsigned char ReadEEByte(unsigned int addr){ //read one byte of EEPROM
unsigned char b;
EEPROM_R;
b=XBYTE[addr];
EEPROM_endR;
return b;
}
data char a;
WriteEEBuf(0,buf,9);
WriteEEByte(10,0xf5);
ReadEEBuf(0,buf,12);
a=ReadEEByte(10);
Ответы