打印

谁有中断标志的清除这方面的经验

[复制链接]
2066|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangchui|  楼主 | 2013-11-3 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jiajs| | 2013-11-3 15:26 | 只看该作者
在中断服务程序中一般都要手工清除中断标志位,一般的做法是先作中断服务处理,然后再清除中断标志。

使用特权

评论回复
板凳
jlyuan| | 2013-11-3 15:28 | 只看该作者
但是中断处理一般要消耗时间,如果在这段时间里有新的中断时间到来,新来的事件就有可能丢失。

使用特权

评论回复
地板
yszong| | 2013-11-3 15:28 | 只看该作者
推荐的方法是?

使用特权

评论回复
5
午夜粪车| | 2013-11-3 15:30 | 只看该作者
是啊

使用特权

评论回复
6
liliang9554| | 2013-11-3 15:30 | 只看该作者
应尽可能早的清除中断标志,然后做中断处理,处理完后可再查询中断标志,直到无中断标志置位时退出。

使用特权

评论回复
7
jiajs| | 2013-11-3 15:32 | 只看该作者
这样可以更加实时性的响应中断请求,并最大可能避免中断丢失。

使用特权

评论回复
8
lizye| | 2013-11-3 15:32 | 只看该作者
如果,频繁发生,中断处理过程中有新中断来,说明需要升级平台了。

使用特权

评论回复
9
jiahy| | 2013-11-3 15:33 | 只看该作者
偶尔发生呢

使用特权

评论回复
10
liliang9554| | 2013-11-3 15:34 | 只看该作者
偶尔发生,则需要构建中断处理的任务队列,还要解决好代码的可重入性。

使用特权

评论回复
11
wuhany| | 2013-11-3 15:35 | 只看该作者
liliang9554 发表于 2013-11-3 15:34
偶尔发生,则需要构建中断处理的任务队列,还要解决好代码的可重入性。

否则呢

使用特权

评论回复
12
liliang9554| | 2013-11-3 15:36 | 只看该作者
否则还是比较容易出现两次进入同一个服务程序

使用特权

评论回复
13
liliang9554| | 2013-11-3 15:36 | 只看该作者
然后数据混了,这就麻烦了。

使用特权

评论回复
14
huangchui|  楼主 | 2013-11-3 15:36 | 只看该作者
哦,了解了,多谢大侠们

使用特权

评论回复
15
huangchui|  楼主 | 2013-11-3 15:37 | 只看该作者
结贴了哈

使用特权

评论回复
16
zhangmangui| | 2013-11-3 17:27 | 只看该作者
对应的datasheet中讲解中断标志的地方写的很清楚  是否需要软件清除
还是硬件自动清除

使用特权

评论回复
17
llbdy| | 2013-11-3 18:06 | 只看该作者
中断程序的第一条代码就是清中断……

使用特权

评论回复
18
msblast| | 2013-11-3 20:49 | 只看该作者
jlyuan 发表于 2013-11-3 15:28
但是中断处理一般要消耗时间,如果在这段时间里有新的中断时间到来,新来的事件就有可能丢失。 ...

退出中断服务子程序之前,再次检查中断标志位,然后决定是退出还是继续处理中断。

使用特权

评论回复
19
dragon_hn| | 2013-11-4 09:23 | 只看该作者
本帖最后由 dragon_hn 于 2013-11-4 09:28 编辑
liliang9554 发表于 2013-11-3 15:30
应尽可能早的清除中断标志,然后做中断处理,处理完后可再查询中断标志,直到无中断标志置位时退出。 ...
从中断程序尽可能短考虑,处理完后立即退出可能更好.

使用特权

评论回复
20
dragon_hn| | 2013-11-4 09:25 | 只看该作者
本帖最后由 dragon_hn 于 2013-11-4 09:26 编辑
llbdy 发表于 2013-11-3 18:06
中断程序的第一条代码就是清中断……


使用特权

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

本版积分规则

918

主题

12323

帖子

4

粉丝