9274|27

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

中断响应时间怎么会是25ms [复制链接]

外部中断产生到响应中断用了25ms,即我的IST中 WaitForSingleObject等到中断事件用掉了25ms,有什么办法可以减小中断产生到响应的时间?可能是什么原因造成这个问题的呢?

最新回复

WinCE又不是RTOS,怎么可能快呢?想快?就uCOS类的,1us微秒以下级别都没问题  详情 回复 发表于 2009-5-13 14:38
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
25ms 完全正常,

设置你的中断的硬件优先级,在寄存器有设置的。线程优先级也提高。

 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
25ms 中做了很多事情,详细的分析可以看看
为提高实时性能,设计和优化 Microsoft Windows CE .NET:[url=http://blog.eeworld.net/gooogleman/archive/2009/04/24/4106396.aspx][/url]
减少时间的话,可以将ist的优先级提高试试...
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
多任务操作系统就这样,要交替执行多个任务。不能老是执行你想要的任务。

即使执行也会慢的要死。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 1 楼 gooogleman 的回复:
25ms 完全正常,

设置你的中断的硬件优先级,在寄存器有设置的。线程优先级也提高。

提高了IST的优先级,设置了中断优先级。似乎效果不明显。。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 2 楼 morris88 的回复:
25ms 中做了很多事情,详细的分析可以看看
为提高实时性能,设计和优化 Microsoft Windows CE .NET:http://blog.eeworld.net/gooogleman/archive/2009/04/24/4106396.aspx
减少时间的话,可以将ist的优先级提高试试...

怎么把他提高到200us以下?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
貌似只有放到 isr 中去了,如果执行时间较短,可以考虑 isr ...
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
1. "外部中断产生到响应中断用了25ms" -> 不知 LZ 是如何得出這個數據的.

2. 將 IST priority 設為 0, 再測一次.

3. LZ 在 OEMInit 中, 將 System Time Tick 設成多久??

Paul, Chao @ Techware
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 paul_chao 的回复:
1. "外部中断产生到响应中断用了25ms" -> 不知 LZ 是如何得出這個數據的.

2. 將 IST priority 設為 0, 再測一次.

3. LZ 在 OEMInit 中, 將 System Time Tick 設成多久??

Paul, Chao @ Techware

谢谢LS
1,我是用示波器测得,我一进IST中就清除外部来的中断。 发现在示波器上中断电平持续了25ms。

2.IST设置成了0,结果还是一样。25ms

3,System Time Tick=1ms
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 6 楼 morris88 的回复:
貌似只有放到 isr 中去了,如果执行时间较短,可以考虑 isr ...

估计不好放过去,因为这儿有大量的数据操作。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

11
 
你测试一下数据处理的时间大概是要多少?
然后裸ISR IST转换的时间是多少?
确定了方向再优化啊~
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

12
 
在重新使能这些不要使用函数调用,你自己直接在驱动中使能即可。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 11 楼 gooogleman 的回复:
在重新使能这些不要使用函数调用,你自己直接在驱动中使能即可。

gooogleman你的意思可是 不调用InterruptDone
直接配置寄存器使能?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
让人无法理解的是,为什么从硬件中断产生到IST中等到该中断事件会用掉25ms(时间间隔A==25ms)并且很固定的就是25ms!
如果是其他中断优先级高,抢占了运行时间,那么这个时间间隔A应该是个随机的,可这里每次到IST中时间间隔很固定。。。爆汗。。。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

15
 
应该是WaitForSingleObject的问题,我发现这个函数和Sleep之类的时间精度是一样的。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 12 楼 papapa123123 的回复:
引用 11 楼 gooogleman 的回复:
在重新使能这些不要使用函数调用,你自己直接在驱动中使能即可。

gooogleman你的意思可是 不调用InterruptDone
直接配置寄存器使能?


对,避免了多个函数切换,在不少驱动中都是这样的,不说多少时间,但是节省一点事绝对可行的。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 14 楼 titan_ysl 的回复:
应该是WaitForSingleObject的问题,我发现这个函数和Sleep之类的时间精度是一样的。


这个函数是微软自己写的,总之这是别的线程啊,中断啊,影响了。自己带吗写好点也可以稍微快点。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

18
 
我感觉用个GPIO口测量再试试,在ISR结束的时候,置高IO,在IST的waitforsingleobject后面设置低。看看时间间隔。
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 8 楼 papapa123123 的回复:
谢谢LS
1,我是用示波器测得,我一进IST中就清除外部来的中断。 发现在示波器上中断电平持续了25ms

2.IST设置成了0,结果还是一样。25ms

3,System Time Tick=1ms


LZ 确定外部 chip, 一清除中断就会其中断脚就会马上变化?? 这与该 chip 有关.

建议就 17 楼的方法试试.

Paul, Chao @ Techware
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

20
 
关注,我遇到了同样的问题,怀疑就是其他地方影响了ist的响应,但是要解决问题可麻烦了
bsp都是在别人基础上改的,痛苦
 
 
 

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

随便看看
查找数据手册?

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