打印
[技术问答]

新唐的管脚中断标志问题

[复制链接]
1151|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 | 只看该作者
不要看这个例子啊,感觉写的没实际意义

使用特权

评论回复
5
dongnanxibei| | 2017-11-28 14:16 | 只看该作者
还是自己没理解,不要死认人家的程序。

使用特权

评论回复
6
xixi2017| | 2017-11-28 17:18 | 只看该作者
程序的任务都是没有意义的,当然,可能忘记清零了。

使用特权

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

本版积分规则

13

主题

36

帖子

0

粉丝