PIC16一个中断怎么用啊?

[复制链接]
4190|6
 楼主| lanmp 发表于 2012-12-14 00:34 | 显示全部楼层 |阅读模式
如果我有多个中断源,而且不是每个中断每次都要响应,有些中断一部分时间不能响应。在中断函数里我应该怎么判断是哪个中断来了呢?就算我把某个PIE清除掉,它的IF还是会置位阿。不知道我说清楚了没有。
1521732588 发表于 2012-12-14 10:24 | 显示全部楼层
查询
举个例子: if(T0IF){....} else if(INTF) {...}
 楼主| lanmp 发表于 2012-12-14 12:05 | 显示全部楼层
看来我还是没说清楚。如果我在某个时间段不能响应INT中断,可是INTF还是会因为有信号输入而被置位。如果每个中断都有独立的中断源就不会有这个问题,只要关掉INT IE就不会相应INT中断了。
yewuyi 发表于 2012-12-14 12:13 | 显示全部楼层
在PIC16上采用了单中断源的设计,标准判断办法是中断容许位和中断标志位一起判断,只有同时有效时才能进入对应的中断服务函数。

例如:if(T0IE&&T0IF){}
yewuyi 发表于 2012-12-14 12:14 | 显示全部楼层
lanmp 发表于 2012-12-14 12:05
看来我还是没说清楚。如果我在某个时间段不能响应INT中断,可是INTF还是会因为有信号输入而被置位。如果每 ...

关掉对应的中断容许位即可
 楼主| lanmp 发表于 2012-12-14 12:14 | 显示全部楼层
嗯,看来只能这样了。多谢!
yewuyi 发表于 2012-12-14 12:15 | 显示全部楼层
2楼不要误导别人。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

627

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部