打印

PIC16一个中断怎么用啊?

[复制链接]
3716|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){}

使用特权

评论回复
5
yewuyi| | 2012-12-14 12:14 | 只看该作者
lanmp 发表于 2012-12-14 12:05
看来我还是没说清楚。如果我在某个时间段不能响应INT中断,可是INTF还是会因为有信号输入而被置位。如果每 ...

关掉对应的中断容许位即可

使用特权

评论回复
6
lanmp|  楼主 | 2012-12-14 12:14 | 只看该作者
嗯,看来只能这样了。多谢!

使用特权

评论回复
7
yewuyi| | 2012-12-14 12:15 | 只看该作者
2楼不要误导别人。

使用特权

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

本版积分规则

64

主题

623

帖子

0

粉丝