| 
 
| 引子: 用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添加到使用 它之前,问题解决
 | 
 |