greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2839回复:28

关于中断处理

楼主#
更多 发布于:2002-04-23 10:52
我在写一硬件中断驱动程序,中断频率为8kHz。
有个问题想请教各位:什么叫异步事件,在我的中断处理中要不要安排一个异步事件函数,怎么办????

最新喜欢:

dongjundongju...
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
zhm
zhm
驱动牛犊
驱动牛犊
  • 注册日期2001-05-28
  • 最后登录2002-05-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-04 14:45
我也是给一块数据采集卡写了一个程序,让它采集的速度尽量快。我也是用中断写的,我现在算是写完了。我想测试一下我的卡的采集速度到底有多快。怎么办呢?谁能告诉我。我也是学生,大家交个朋友。hoho

谁回答我的问题呀?回答的好,有分给的。多谢大家。
告诉我怎样做,才能知道我的采集速度到底有多快!!!

 
caesun
驱动小牛
驱动小牛
  • 注册日期2001-12-10
  • 最后登录2006-12-01
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望30点
  • 贡献值393点
  • 好评度21点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-30 16:30
windows 应该可以处理8kHz的中断,但如果是调用GDI函数达到8KHz,我肯定P4-2G也是要死掉的。很久以前我做中断的时候,外接单片机的TIMER中断,更新画面最快也就1KHZ-2KHZ(PMMX-500M)。   如果在中断里只做简单的操作,上几十K没问题。当时我是觉得用消息或事件太慢而且麻烦,就自己写回调函数挂在中断处理里。
zhm
zhm
驱动牛犊
驱动牛犊
  • 注册日期2001-05-28
  • 最后登录2002-05-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-30 15:58
我也是给一块数据采集卡写了一个程序,让它采集的速度尽量快。我也是用中断写的,我现在算是写完了。我想测试一下我的卡的采集速度到底有多快。怎么办呢?谁能告诉我。我也是学生,大家交个朋友。hoho

greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-29 14:06
这几天都在调程序,所以没上来。
很高兴和大家做朋友,我还是学生,呵呵
 :P :P :P :P :P
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
feng_yu1
驱动牛犊
驱动牛犊
  • 注册日期2002-04-27
  • 最后登录2003-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-28 16:59
那要看你想干什么了,中断中的操作太多可能会引起死机,有些操作可放在延时过程调用中完成。
yufeng
mingle
驱动牛犊
驱动牛犊
  • 注册日期2002-03-03
  • 最后登录2004-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-27 17:43
我觉得让计算机直接处理这么高速度中断有点勉强,特别是在
WINDOWS环境中。如果你的硬件水平还可以的话,用单片机加
RAM做一个缓冲,一般的单片机在你的中断里可以执行上百条
指令,完全可以完成你的数据简单的处理和存储。到了一段
时间,一次发给计算机显示。
因为我是维护仪表的,所以总有职业习惯,一听到信号采集,
就认为是工业上用。
不知道你是做什么的,有兴趣交个朋友吗

我终于会使用签名档了
greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-26 20:16
回应“因为一般大的企业用的都是进口的。
      你们是生产仪表的公司吗?”



俗话说巧妇难为无米之炊嘛!难道只有仪表公司才会碰到数据处理的问题?如果不先把数据以一定的格式读入,那还处理个啥啊。
再说了,我还是学生哪有钱买进口货!!!!!

[编辑 -  4/26/02 作者: greenhand]
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
mingle
驱动牛犊
驱动牛犊
  • 注册日期2002-03-03
  • 最后登录2004-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-26 18:12
我总看见有人做数据采集卡,但不知道你们的采集卡用在什么地方,
因为一般大的企业用的都是进口的。
你们是生产仪表的公司吗?
我终于会使用签名档了
greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-26 12:58
源程序,是啊,我也希望有
可是现在连思路都还没确定,我只有vtoolsd生成的框架,实在不好意思
我正在努力、努力
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
bh_zhouqian
驱动牛犊
驱动牛犊
  • 注册日期2002-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-04-26 12:33
我认为8KHz的频率中断是肯定可以处理的,关键是中断服务程序的设置,另外,你说在主程序里要通过定时器中断,那么就要用到多线程编程,具体可以看看相关方面的书。
如果方便的话,可以把你的程序发来看看吗,这样可能更清楚一些!
bh_zhouqian@sina.com
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-04-26 11:32
用前面讲的方法,或许可以不用event
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-04-25 16:51
不好意思,我跟你们学的!!!!!


你学到什么了?
交学费了没!!!!!!!!
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-04-25 16:47
再说明白一点,就是我想知道到底要不要用event,到底要不要编写异步事件函数。 :)
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
yangyang
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2009-04-18
  • 粉丝0
  • 关注0
  • 积分368分
  • 威望67点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-04-25 16:16
不好意思,我跟你们学的!!!!!
欢迎大家访问中国电子开发网 http://www.cedn.cn vxworks资料库最全的网站
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-04-25 13:10
困扰什么,说明白一点
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-04-25 12:17
我觉得这种情况用定时器来调用paint()不太合适,因为你并不知道中断什么时候发生,你的paint在某一个时刻怎么知道到底应该画数组的那个值呢?
对了,也许可以这样,你可以传两块缓冲区到vxd,一块只有一个值,一块是你的数组,(当然他们可以放到一个结构中),然后你在中断例程里根据采到的数对数祖赋值并对变量刷新,你可以在用户态定时读这个变量,然后paint,但是这又可能会丢失数据,主要看你的定时大小。
这只是个想法,你可以试试。多线程也许可以不用,你可以再开一个定时器来判断数组是否已经满了。
 


zydcat,照你上面讲的是否就是说可以不用event了呢,异步事件函数呢?这是我最大的困扰,能讲一下吗?谢谢
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
greenhand
驱动中牛
驱动中牛
  • 注册日期2002-04-07
  • 最后登录2005-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-04-25 12:10
THANK YOU,我先试一试,有问题再请教。
要向全世界宣告:“我是月光族的光荣一员,员、员、员……” [img]http://www.driverdevelop.com/forum/upload/greenhand/2003-01-08_007.jpg[/img]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
18楼#
发布于:2002-04-25 11:10
8khz的中断,不知道能响应过来吗在windows下。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-04-25 09:32
我觉得这种情况用定时器来调用paint()不太合适,因为你并不知道中断什么时候发生,你的paint在某一个时刻怎么知道到底应该画数组的那个值呢?
对了,也许可以这样,你可以传两块缓冲区到vxd,一块只有一个值,一块是你的数组,(当然他们可以放到一个结构中),然后你在中断例程里根据采到的数对数祖赋值并对变量刷新,你可以在用户态定时读这个变量,然后paint,但是这又可能会丢失数据,主要看你的定时大小。
这只是个想法,你可以试试。多线程也许可以不用,你可以再开一个定时器来判断数组是否已经满了。
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
上一页
游客

返回顶部