打印
[MCU]

都是DP惹的祸

[复制链接]
512|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 的野指针一样恐怖.  深有同感

使用特权

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

本版积分规则

438

主题

2263

帖子

3

粉丝