QQ624353765 发表于 2023-3-22 17:29:39

有关sfr16定义寄存器读写无效




我定义了一个sfr16的寄存器,是ADC转换结果寄存器定义成16位
用这16位的寄存器读取出来的值是0,为什么?难道sfr16不是这么用的吗

zhp 发表于 2023-3-22 17:51:44

本帖最后由 zhp 于 2023-3-22 17:54 编辑

芯片设计时并没有考虑支持sfr16
使用sfr16定义16位sfr,必须是低8位的sfr在低地址,高8位的sfr在高地址
目前ADC_RES和ADC_RESL则是高8位在低地址,低8位在高地址

如果像你这样强行定义也是可以读取的,只不过高低字节顺序是反的
但如果读到的值是0,则可能是其他原因导致的,和用sfr16定义没关系
页: [1]
查看完整版本: 有关sfr16定义寄存器读写无效