[技术问答]

新唐的管脚中断标志问题

[复制链接]
903|5
手机看帖
扫描二维码
随时随地手机跟帖
spawml|  楼主 | 2017-11-23 09:49 | 显示全部楼层 |阅读模式
管脚中断通道标志位
如果选择边沿触发有效,当管脚中断的通道检测到边沿跳变信号,该标志置1,通
过软件清除。

上面这句话是新唐的PDF文档上的说明,管脚中断标志PIF需要通过软件来清零,但是下面的实例里面只有第一个if语句后面有PIF=0x00,下面的else if不用清零吗?
void PinInterrupt_ISR (void) interrupt 7
{
        if(PIF == 0x01)
        {
                        PIF = 0x00;                             //clear interrupt flag
                        clr_GPIO1;
                        Timer1_Delay10ms(10);
                        set_GPIO1;
                        Timer1_Delay10ms(10);
               
        }
        else if (PIF == 0x80)
        {
                        clr_GPIO1;
                        Timer1_Delay10ms(10);
                        set_GPIO1;
                        Timer1_Delay10ms(10);
        }
}

mmcu| | 2017-11-23 10:39 | 显示全部楼层
估计是漏写了,一定要清除标志位!

使用特权

评论回复
heisexingqisi| | 2017-11-23 14:28 | 显示全部楼层
你要看这个程序是干啥的,两个没看明白有啥区别。。。感觉这个程序本身逻辑混乱。

使用特权

评论回复
jiekou001| | 2017-11-27 19:45 | 显示全部楼层
不要看这个例子啊,感觉写的没实际意义

使用特权

评论回复
dongnanxibei| | 2017-11-28 14:16 | 显示全部楼层
还是自己没理解,不要死认人家的程序。

使用特权

评论回复
xixi2017| | 2017-11-28 17:18 | 显示全部楼层
程序的任务都是没有意义的,当然,可能忘记清零了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

36

帖子

0

粉丝