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

标题: dspic30f的EEPROM写程序怎么编写呀?MPLAB C30程序, [打印本页]

作者: winnie    时间: 2009-4-26 11:46
标题: dspic30f的EEPROM写程序怎么编写呀?MPLAB C30程序,
读程序:
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();
}
作者: winnie    时间: 2009-4-26 11:46
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




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://www.enroobbs.com/) Powered by Discuz! X3.2