atmega128定时器中断异常

2019-03-24 20:31发布

#pragma interrupt_handler timer1_capt_isr:12
void timer1_capt_isr(void)
{
    服务程序;
   ETIMSK=0B00000100;
  TCNT3=10000;
}
#pragma interrupt_handler timer3_ovf_isr:30
void timer3_ovf_isr(void)
{

   服务程序;
   ETIMSK=0B00000000;
}
即在定时器1里,启动定时器3中断;等定时器3中断执行完后,把本身的中断禁止。然后定时器1中断时再启动定时器3的中断,接着定时器3执行完程序再把本身的中断禁止,如此循环。但并没有实现预定的功能,如在定时器3里把 ETIMSK=0B00000000这句去掉就可以实现,请问这是怎么回事呢?能在在断程序里禁止该中断吗? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
农逸
1楼-- · 2019-03-25 02:15
你想关了定时器3的中断的这句的时候,同时也把定时器1的中断给关了。可以用或的写法来写的啊,如:EMISK|=0b00000100;
zhangquanchang
2楼-- · 2019-03-25 02:46
关定时器1不是这样关的,是TIMSK=0B00000000这句来关的,即我没有关定时器1的中断。

一周热门 更多>