6034|5

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

为什么IFG(中断标识位)会自动置1 [复制链接]

我的程序中每次中断处理都将相应的IFG置为0了,可是过一下这个标识位又自动变成1了,而我的程序根本没有处理过这个IFG位。

我用的是133,不知道这是为什么。盼望高手解答。谢谢!

最新回复

选择端口方向时,IFG有可能置位的,所以你看看呢  详情 回复 发表于 2004-11-13 13:37
 
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你说的是哪个IFG
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
是啊,你说的太含糊,不明白。说仔细点/
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
是这样,我在P2.1端口的中断处理程序中接收了外部数据后,将P2.1的中断屏蔽,然后将其IFG置0,接着退回到主程序,进入休眠状态。

但是在测试中,我在数据传输完毕后(也就是休眠状态中),查看P2端口的Register,发现P2.0、P2.1、P2.2的IFG位都变成1了。

而事实上,我在主程序初始化的时候已经将P2端口的所有IFG位全部置为0了,P2.0和P2.2的IE、IFG从来就没有修改过,P2.1的IFG如前所述,在中断处理程序中也已经置为0了。

我已经把P2.1的中断关掉,因此IFG的自动改变不会产生新的中断,但是如果P2端口的其它引脚产生中断,那么我在判断中断源的时候就会出错。

中断处理程序:
{
……
if (A)
ProcessA();
else
ProcessB();

P2IFG &= ~BIT1;
}

我都快要疯了,好长时间都没有解决这个问题,而别人的程序(运行在别的133芯片上)就没有这个问题。难道这片133是次品?可是从程序测试来看,这种IFG的自动变化好像很有规律,运行了ProcessA(),退出后就一定会自动变化,而运行了ProcessB(),退出后就一定不会变。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
你的端口方向啉了??
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
选择端口方向时,IFG有可能置位的,所以你看看呢
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表