新手求助:定时器可以在中断过程中修改中断时间吗??

2019-03-24 15:50发布

我想用timeB中断,开始的时候中断时间控制在1024,下一个中断时间控制在2048,然后不断的反复。我试着在中断中修改中断时间,#pragma vector = TIMERB0_VECTOR__interrupt void Timer_B (void){      P3OUT ^= 0x10;   if( c(外部定义的)%2==0) TBCCR0 = 1000; else TBCCR0 = 4000;}但是好像没有什么效果,,请问各位,如果要改的话应该怎么改。。顺便问一下,如果一段程序中同时开启TimeA和TimeB,两者之间会有相互的影响吗,,麻烦各位了。。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
3g465
2019-03-25 05:32
LZ你好,在中断中可以更改中断时间的。
TA和TB有些不同,TA是你往CCR0写值立马就更改了,这个根据CCR0的值和你当前的计数值不同又有不同的情况,简而言之你改变CCR0值后的下一个周期可能会不准
TB有双重缓冲,你写入CCR0的值会先进入一个缓冲寄存器,当达到一定的条件(譬如计数到CCR0)就把缓冲寄存器的值写入CCR0,这个条件是可以在寄存器中设置的,默认是立即写入,这个就跟TA一样了。

一周热门 更多>

相关问题

    相关文章