英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4536|回复: 1
打印 上一主题 下一主题

dspic30f的EEPROM写程序怎么编写呀?MPLAB C30程序,

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-26 11:46:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
读程序:
uint EEPROM_READ(uint addr)
{
WREG1=2*addr+0xFC00; // Init Pointer
TBLPAG=0x7F;
__asm__ volatile("TBLRDL [W1],W4");  //read data EEPROM
return WREG4;
}
写程序我是这样编的:
void EEPROM_WRITE(uint addr,uint value)
{
TBLPAG=0x7F;
WREG1=2*addr+0xFC00; // Init Pointer
WREG0=value;
__asm__ volatile("TBLWTL W0,[W1]");
NVMCON=0x4004;
NVMKEY=0x55;
NVMKEY=0xAA;
_WR=1;
Nop();
Nop();
}
2#
 楼主| 发表于 2009-4-26 11:46:22 | 只看该作者
void WriteConfig(int addr, int value)
{
TBLPAG=0x7f;
WREG1=2*addr+0xFC00; // Init Pointer
NVMCON=0x4044;
NVMKEY=0x55;
NVMKEY=0xAA;
_WR=1;
Nop();
Nop();
while(_WR);
TBLPAG=0x7f;
WREG1=2*addr+0xFC00; // Init Pointer
WREG0=value;
__asm__ volatile("TBLWTL W0,[W1]");
NVMCON=0x4004;
NVMKEY=0x55;
NVMKEY=0xAA;
_WR=1;
Nop();
Nop();
while(_WR);
}


先擦除再写入,调试OK
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-25 21:07 , Processed in 0.051997 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表