阿波罗STM32F767 22章 void RTC_WKUP_IRQHandler(void) 中的if判断是否多余?

2019-07-20 08:14发布

//RTC WAKE UP中断服务函数
void RTC_WKUP_IRQHandler(void)
{   
    static u8 led1sta;        
    if(RTC->ISR&(1<<10))//WK_UP中断?
    {
        RTC->ISR&=~(1<<10);    //清除中断标志
        LED1(led1sta^=1);
    }   
    EXTI->PR|=1<<22;    //清除中断线22的中断标志         
}

上面的代码中的对WK_UP中断的if判断是否多余,因为这个函数只有可能在实时时钟wakeup发生的情况下才可能有中断发生,感觉这个wake up判断有点画蛇添足。
版主  上面的if是多的吗?

并且正点原子很多中断服务函数中都有 if 判断,有的中断函数有多个触发条件,在函数中就需要对触发条件作出判断并进行相应的处理;如果中断函数只有一个触发条件,这种判断应该就没有必要。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Electronic
1楼-- · 2019-07-20 11:32
 精彩回答 2  元偷偷看……
huyu268897
2楼-- · 2019-07-20 17:15
Electronic 发表于 2018-5-12 18:55
方便后期添加新功能,并不多余

我的判断错没错?   就是说waup中断    只有一个触发条件    再在里面判断if(RTC->ISR&(1<<10))   这一点判断语句     有点多余吧    我的焦点不是  应不应该在中断中添加if判断语句
正点原子
3楼-- · 2019-07-20 21:16
huyu268897 发表于 2018-5-12 23:38
我的判断错没错?   就是说waup中断    只有一个触发条件    再在里面判断if(RTC->ISR&(1

你可以试试不加,能用就行。
关键是很多时候,如果不加,运行就不正常。
Electronic
4楼-- · 2019-07-21 01:50
 精彩回答 2  元偷偷看……

一周热门 更多>