如题:
TB0中断位CCIE中断计时。但是中断完成退出来后,TBIFG标志位没有变成0,还是1置位。但是程序单步执行下一步也不会进去该中断。
怎么回事呢?
Maka Luo:
进入中断服务函数后,标志位会自动清0,不需要手动清0.
zibo zhang:
回复 Maka Luo:
只开TB0计数中断50毫秒间隔,第一次进中断标志位还是0:如图
然后点击go,下次进中断时标志位是变成1,单是退出来中断后标志位还是1,如下图
定时器计数中断不是会自动清0标志位吗?为什么出了中断还是1置位?
zibo zhang:
回复 灰小子:
只能这么解释了。
还有一个,TB0间隔50ms中断扫描键盘,但是在键盘中有个100ms延时,延时后执行一函数初始化TA1产生PWM波,TA1中断计数P波个数。但是每次都会漏掉一开始几个P波,用的P波控制步进电机,导致第一次进TA1中断计数,电机就已经走了几十步了。 初始化P波的函数在TB0中断内初始化的,是初始化完后下一个时钟周期就会产生P波吗?
TB0中断优先级高于TA1的。