英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
求助EEPROM问题
[打印本页]
作者:
winnie
时间:
2009-3-12 15:47
标题:
求助EEPROM问题
程序如下,用SIM仿真时可以擦除但无法写入 在最后一句死循环,请高手看看问题在哪谢谢!
#include <p30F6010A.h>
#include <math.h>
int main ( void )
{
EEPROM_W(16,0xF002);
}
void EEPROM_W(unsigned int EE_DATA,unsigned int EE_ADDR )
{
NVMCON=0x4044;
NVMADRU=0x7F;
NVMADR=(unsigned int)(EE_ADDR);
asm volatile("mov #0x55,w0");
asm volatile("mov w0,NVMKEY");
asm volatile("mov #0xAA,w0");
asm volatile("mov w0,NVMKEY");
NVMCONbits.WR=1;
while( NVMCONbits.WR==1);
NVMCONbits.WREN=0;
asm volatile("NOP");
TBLPAG=0x7F;
WREG4=(unsigned int)EE_DATA;
WREG5=(unsigned int)EE_ADDR; //目标数据地址
asm volatile("TBLWTL w4,[w5]");
NVMCON=0x4004;
asm volatile("mov #0x55,w0");
asm volatile("mov w0,NVMKEY");
asm volatile("mov #0xAA,w0");
asm volatile("mov w0,NVMKEY");
NVMCONbits.WR=1; //开始写
while(NVMCONbits.WR=1); //检测寄存器
}
作者:
winnie
时间:
2009-3-12 15:47
在NVMKEY代码后面增加2个Nop().
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2