5992|9

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问如何清除中断请求?? [复制链接]

如题。
我知道注册了中断号以后,用InterruptDone(中断号)可以清除对应的中断请求并且使能中断,但这里我想在别的地方直接操作中断寄存器把中断请求清掉,而不想申请中断号然后用InterruptDone。
我是在某些条件下想要撤销EINT0的中断操作。
我试了这样:SRCPND1 |= 0x1; INTPND1 |= 0x1;
结果无效。
想请教一下应该怎样解决??
谢谢

最新回复

EINT0不在子中断里头,不用再操作EINTPEND了啊。  详情 回复 发表于 2010-3-30 16:10
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
自己顶一下~~~~~~~~~~~~~~~~~~~~~~~~
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你这样是不行的,必须通过InterruptDone。InterruptDone是告诉操作系统中断处理已经完成,从而使操作系统能够准备处理其他的中断。你单单清除中断寄存器是不行的
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 
那我在A.cpp文件里申请了EINT0的中断号,在B.cpp文件里也要用InterruptDone清除EINT0请求的话,也要重新申请中断号吗??

如果不用的话,那我怎么获取在A.cpp文件里申请过的中断号呢??
(我的文件执行顺序是先B文件,再A文件,A文件代码负责处理中断事件。我想在某些时候在B文件里把EINT0请求清掉,不让它在A文件里处理EINT0中断)

谢谢
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
你从什么什么地方,引进的中断输入信号了。还有就是中断控制寄存器当中不是有个使能寄存器,这个应该可以控制的!可以试试看看,个人观点,可能不对!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 larryk 的回复:
那我在A.cpp文件里申请了EINT0的中断号,在B.cpp文件里也要用InterruptDone清除EINT0请求的话,也要重新申请中断号吗??

如果不用的话,那我怎么获取在A.cpp文件里申请过的中断号呢??
(我的文件执行顺序是先B文件,再A文件,A文件代码负责处理中断事件。我想在某些时候在B文件里把EINT0请求清掉,不让它在A文件里处理EINT0中断)

谢谢

A和B是不是同一个驱动啊?如果是的话就直接extern不就可以了嘛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 veabol 的回复:
A和B是不是同一个驱动啊?如果是的话就直接extern不就可以了嘛


不是同一驱动啊!!!比较麻烦
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 3 楼 larryk 的回复:
那我在A.cpp文件里申请了EINT0的中断号,在B.cpp文件里也要用InterruptDone清除EINT0请求的话,也要重新申请中断号吗??

如果不用的话,那我怎么获取在A.cpp文件里申请过的中断号呢??
(我的文件执行顺序是先B文件,再A文件,A文件代码负责处理中断事件。我想在某些时候在B文件里把EINT0请求清掉,不让它在A文件里处理EINT0中断)

谢谢


我在B文件中把intpnd1和scrpnd1的值打印出来,发现EINT0对应的第0位都为0,就是说没有中断请求,为什么到A文件的时候,EINT0会响应呢??真是奇怪啊~~~~~~~~
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
两个文件的东西,情况比较复杂吧,也许是你设定的变量因为缓冲的关系,都没有被中断更新。试试把外部中断寄存器也设置一下。

                        s2440IOP->rEINTMASK |= 0x4000;
                        s2440IOP->rEINTPEND = 0x4000;
                        s2440INT->rSRCPND = BIT_EINT8_23;
                        if (s2440INT->rINTPND & BIT_EINT8_23)
                                s2440INT->rINTPND = BIT_EINT8_23;
上面的是我清理EINT14的
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 halfboy 的回复:
两个文件的东西,情况比较复杂吧,也许是你设定的变量因为缓冲的关系,都没有被中断更新。试试把外部中断寄存器也设置一下。


EINT0不在子中断里头,不用再操作EINTPEND了啊。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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