打印
[PIC®/AVR®/dsPIC®产品]

DIA数据读出错误问题!

[复制链接]
363|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tanzhb|  楼主 | 2022-12-5 12:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
芯片型号:PIC16F15345
使用MCC产生的函数读出的数据不对,和用PICkit3读出的数据差很多。求大神指教,怎么解?
MCC读函数如下,读程序存储区都是正常的,读DIA不对:
uint16_t FLASH_ReadWord(uint16_t flashAddr)
{
    uint8_t GIEBitValue = INTCONbits.GIE;   // Save interrupt enable
   
    INTCONbits.GIE = 0;     // Disable interrupts
    NVMADRL = (flashAddr & 0x00FF);
    NVMADRH = ((flashAddr & 0xFF00) >> 8);

    NVMCON1bits.NVMREGS = 0;    // Deselect Configuration space
    NVMCON1bits.RD = 1;      // Initiate Read
    NOP();
    NOP();
    INTCONbits.GIE = GIEBitValue; // Restore interrupt enable

    return ((uint16_t)((NVMDATH << 8) | NVMDATL));
}

使用特权

评论回复
沙发
ynwa| | 2022-12-5 15:06 | 只看该作者
读DIA和读Flash的NVMREGS位设置是不一样的。
NVMREGS: Configuration Select bit
1 = Access DIA, DCI, Configuration, User ID and Device ID Registers
0 = Access Program Flash Memory

使用特权

评论回复
板凳
wutaosamuel| | 2022-12-5 16:46 | 只看该作者
楼上应该是正解, 修改NVMREGS

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝