7710|5

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

中断标志位放在中断程序中判断有什么用? [复制链接]

interrupt[PORT_vector]void PORT1(void)
{
if(P1IFG&BIT0)
{Delay();
if(P1IFG&BIT0)
{执行体;
P1IFG&=~BIT0;
}
}
}
这样能去抖动吗 ,我感觉在中断程序中判断中断标志位只能判断中断源是哪个,并不能去抖动
我看到有几个例程里都是这样写着,我不知道这样有什么用,在中断程序中他的标志位本来就是1啊
即使是干扰致使产生的中断它的标志位也应该位1,不可能自动清0啊,所以只要在中断程序中判断中断标志位
就没有意义,因为不管是什么原因产生的中断,标志位始终为1,只能用软件清0
我是这么认为的,所以请大家发表自己的意见
我觉得判断也应该判断 P1IN&BIT0 来去抖

最新回复

我到现在都认为中断程序中判断中断程序标志位只能是判断中断源是哪一个,并不能去抖动  详情 回复 发表于 2008-7-25 21:37
 
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可以区分多个端口中断,也有点去抖动意思,再加点延时效果更好
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我见过的多是这样

if(P1IFG&BIT0)
{
Delay();
}
if(P1IN&BIT0)
{执行体;
}
P1IFG&=~BIT0;
}

其中if(P1IN&BIT0)有时为if(!(P1IN&BIT0)),根据高电平或低电平有效的不同而不同
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
430的port1 或port2是多源中断,在中断程序中判断标志位,可分别进行不同的处理.

另外,中断程序中最好不要进行延时处理.中断本身就是为最重要的事件提供及时响应的手段.
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

5
 
楼主的帖子我昨天看过了,你改了一下,但是那个程序的括号用的不对。三楼的是对的。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

6
 
我到现在都认为中断程序中判断中断程序标志位只能是判断中断源是哪一个,并不能去抖动
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表