奇怪的问题

2019-03-24 15:48发布

写了一个用到定时器中断的程序,单步调试的时候没有问题,中断函数执行完后正确回到了主函数跳进中断的语句处,可是全速运行的话,每次运行完中断函数都会回到主函数开始处,即从头开始执行。请问只是什么情况? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
chen502
1楼-- · 2019-03-25 20:48
请教一下,中断服务函数里会不会存在一些非法的操作使程序跑飞?如果有的话,哪些算作非法的操作?
5xue
2楼-- · 2019-03-26 01:31
 精彩回答 2  元偷偷看……
chen502
3楼-- · 2019-03-26 05:20
搞了半天,是定时器寄存器配置的问题,可是现在也不知道为什么原先的配置会导致程序跑飞?
我用的是430149,原来的定时器配置是:
CCTL0 = CCIE;
TACTL|=TASSEL_1+TACLR+ID0+ID1;
TACTL|=MC0+TAIE;  
TACCR0=40960;
现在改为:
CCTL0 = CCIE;   
CCR0 = 40960;
TACTL = TASSEL_1 + ID_3 + MC_1;
请教,前一种配置有配置TACCTL的中断时能位TAIE还有清零位TACLR,而后一种没有,反而可以了?
5xue
4楼-- · 2019-03-26 08:51
TACLR作怪的可能性很小
TAIE是用的中断向量表1,溢出的时候会触发中断。
chen502
5楼-- · 2019-03-26 14:06
 精彩回答 2  元偷偷看……
5xue
6楼-- · 2019-03-26 14:07
我也没有确凿的证据证明是TAIE导致程序跑飞,这个问题可以先放一放,继续下一步,当你理解TAIE的用法后,就很明了了。

一周热门 更多>

相关问题

    相关文章