[MCU] 都是DP惹的祸

[复制链接]
723|2
 楼主| stormwind123 发表于 2020-12-4 16:03 | 显示全部楼层 |阅读模式
spi, pi, ov, ADC, dc
引子:
           用C28 的CPU编程,为了节省CPU开消,提高速度,在关键部位使用汇编编程,有个ADC中断,就使用了汇编。

      调试。
          程序中有SPI与其它部件通讯,使用查询方式。
          开始是正常的,但是一加入ADC中断后,SPI就执行就出现错误,即执行到这一句
                     while (SpiaRegs.SPISTS.bit.INT_FLAG != 1){}
时就一直查询状态。(其它正常)

       知道是ADC中断的问题后,就一节一节地屏蔽它:
          B                 end_adc1int, UNC

经过查找,突然想到在使用某一个变量时,没有改变这个变量所在的段!!如 Buff变量:
         MOVW    DP, #_Buff
         MOV       AL,   @_Buff


但是我忽略了MOVW这个指令了。结果影响到了SPI。


           实际上,没有MOVW时,可能会影响的不一定是SPI,根据程序的编译结果有可能影响到其它内部寄存器或存储器。


         将MOVW    DP, #_Buff添加到使用 它之前,问题解决
chenjun89 发表于 2020-12-4 19:17 来自手机 | 显示全部楼层
哈哈哈,
airwill 发表于 2020-12-6 14:56 | 显示全部楼层
这个没有定义好 DP,  跟 C 的野指针一样恐怖.  深有同感
您需要登录后才可以回帖 登录 | 注册

本版积分规则

614

主题

3841

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部