关于中断的判断 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 20:42
eduhf_123 发表于 2012-5-27 18:05
你似乎没有搞清楚“中断源”和“中断服务程序入口”这两个概念的区别。

PIC12/16系列有不止一个的中断源 ...

作为一个实际运行系统,越是能克服各种意外的设计越好。一个中断响应动作,即便不是需要的,万一发生,你多响应一次不会有严重后果;而一个意外的中断响应动作,被那种“不是我该管的事情,我不理睬”的程序员处理,就一定会造成系统不断反复进入中断而挂起。
所以,越是在这种事情上夸夸其谈,就越干不好程序员这个职业。

pic16,甚至pic18这个等级的芯片,PEIE开放之后,一旦出现不被处理的中断标志,就必然造成系统的挂起。

一周热门 更多>