#include "includes.h"
//MEGA48内部EE读写程序
/*
*****************************************************
*描述: 内部EEPROM 读字节数
*
*入口: adr 内部EEPROM地址
* dataBuf 数据区指针
* n 数据字节数
******************************************************
*/
#if EERDP
void Ee_Rdp(unsigned int adr,
unsigned char *dataBuf,
unsigned char n)
{
EECR = 0;
do{
EEAR = adr++;
s(EECR, 0); //第0位置1
*dataBuf++ = EEDR;
}while (--n);
}
#endif
/*
*****************************************************
*描述: 内部EEPROM 写字节数
*
*入口: adr 内部EEPROM地址
* dataBuf 数据区指针
* n 数据字节数
******************************************************
*/
#if EEWRP
void Ee_Wrp(unsigned int adr,
unsigned char *dataBuf,
unsigned char n)
{
EECR = 0;
do{
EEAR = adr++; //设置地址
EEDR = *dataBuf++; //写数据
s(EECR, 2);
s(EECR, 1);
while (b(EECR, 1)); //等待操作结束
}while (--n);
}
#endif
/*
*****************************************************
*描述: 内部EEPROM 读字节
*
*入口: adr 内部EEPROM地址
******************************************************
*/
#if EERDB
unsigned char Ee_Rdb(unsigned int adr)
{
EECR = 0;
EEAR = adr;
s(EECR, 0);
return EEDR;
}
#endif
/*
*****************************************************
*描述: 内部EEPROM 写字节
*
*入口: adr 内部EEPROM地址
* c 数据
******************************************************
*/
#if EEWRB
void Ee_Wrb(unsigned int adr, unsigned char c)
{
EECR = 0;
EEAR = adr; //设置地址
EEDR = c; //写数据
s(EECR, 2);
s(EECR, 1);
while (b(EECR, 1)); //等待操作结束
}
#endif