关于中断的判断 TMR1IE&&TMR1IF 的疑问

2020-02-08 09:13发布

void interrupt ISR(void)
{
        if(TMR1IE&&TMR1IF)
        {

        }
}

datasheet 上说,溢出后  TIR1IF会置1,要软件清零,为什么不直接判断  TIM1IF  而是把TMR1IE和TMR1IF两个一起判断,这样做有什么好处?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
surf_131
2020-02-08 09:16
这是一个不好的编程习惯。能够进入中断响应程序,就表明“IE”已经开启了,不必再关注之。万一程序在"IF"已经树立时关闭"IE",就可能形成中断响应的“孤儿”,中断标志导致不断响应,但是响应后无处理动作,整个程序就挂起了。

一周热门 更多>