[PIC®/AVR®/dsPIC®产品] pic18LF25K42 EEPROM程序

[复制链接]
 楼主| CJY 发表于 2020-2-28 15:17 | 显示全部楼层 |阅读模式
本帖最后由 CJY 于 2020-2-28 15:21 编辑

PIC18LF25K42芯片,采用MPLABX 的MCC找不到 EEPROM的资源,调用PIC18.H的EEPROM_READ(addr),EEPROM_WRITE(addr, value)采用XC8(1.45)编译不能通过,于是看数据手册自编 了EEPROM读写程序:
/*////////////////////////////////////////////////////////
函数名:unsigned char ReadEeprom(unsigned char address)
功        能: PIC18LF25K42   EEPROM读一字节数据 适用EEPROM小于等于256字节
输        入:        无
输        出:        返回  地址address的1字节数据
修        改:
*///////////////////////////////////////////////////////////
unsigned char ReadEeprom(unsigned char address)
{
    unsigned char temp;
    NVMCON1 = 0;
    NVMADRL = address;
    NVMCON1bits.RD = 1;
    temp = NVMDAT;
    return  temp;
}
/*///////////////////////////////////////////////////////
函数名:void WriteEeprom(unsigned char addr ,unsigned char Data)
功        能: PIC18LF25K42   EEPROM写一字节数据 适用EEPROM小于等于256字节
输        入:        addr EEPROM地址;addr EEPROM要写入的一个字节数据
输        出:        无
修        改:
*///////////////////////////////////////////////////////
void WriteEeprom(unsigned char addr ,unsigned char Data)
{
    NVMCON1 = 0;         // Setup Data EEPROM Access
    NVMADRL = addr ;     //Setup Address
                         //; Data Memory Value to write
    NVMDAT  =  Data;
    NVMCON1bits.WREN = 1; // enable writes
    INTERRUPT_GlobalInterruptDisable(); //disable interrupts

    NVMCON2 = 0x55; //unlock sequence
    NVMCON2 = 0xAA; //unlock sequence
// Set WR bit to begin write
    NVMCON1bits.WR = 1; //begin write
    INTERRUPT_GlobalInterruptEnable(); //enable interrupts
    NVMCON1bits.WREN = 0; // enable writes

}
Cjy_JDxy 发表于 2020-2-29 08:10 | 显示全部楼层
你的账号和我的。。。。
ynwa 发表于 2020-3-2 11:18 | 显示全部楼层
MCC支持该芯片产生EEPROM代码。在MCC的“device resourece"里选memory就是
奔波儿熊 发表于 2020-3-2 15:32 | 显示全部楼层
mcc应该能直接生成吧
CoolSilicon 发表于 2020-3-2 18:13 | 显示全部楼层
其实, datasheet里面都有现成的代码..不用太迷信现成的代码这类的说法的...
字节写个读写的函数也很简单啊.
y18370990546 发表于 2020-3-11 21:36 | 显示全部楼层
这是读写内部eeprom?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

CJY

2

主题

20

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部