ljlOnil
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2010-08-28
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望118点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1032回复:7

关于中断

楼主#
更多 发布于:2002-12-06 10:49
一块ISA卡,在DOS下如Init_Interrupt设置中断,中断可工作
在Windows驱动中我用IoConnectInterrupt联接中断成功,但是驱动为什么总是收不到中断呢?是不是在驱动中也要对8259进行初始化,
如果是,该怎么做?
请高人指点

void  Init_Interrupt( void )
{
   int TmpVect;
   int TmpIntr;
   int TmpPort;
   char  Tbyte;
   asm CLI;
   TmpIntr = InterruptNum;
   if (TmpIntr<= 7)
   {
     /* get interrupt vector */
     TmpVect = TmpIntr + 0x08;
     /* get port address */
     TmpPort =  MASTER_PIC;
   }
   else
   {
     /* get interrupt vector */
     TmpVect = (TmpIntr -8) + 0x70;
     /* get port address */
     TmpPort =  SLAVE_PIC;
   }
     /*  save old interruptvector */
     oldhandler = getvect(TmpVect);
     /* set new interruptvector */
     setvect(TmpVect, Timer_interrupt);

   /* PIC - interruptnumber */
   TmpIntr &= 0x0007;
   TmpPort += IRQ_MASK;

    /* enable interrupt */
   Tbyte = inportb(TmpPort);
   char value=Tbyte & ~(1 << TmpIntr);
   outportb (TmpPort, (Tbyte & ~(1 << TmpIntr)) );
   Tbyte = inportb(TmpPort);
   asm STI;
}
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-06 10:57
确定中断为ISA保留了
没有被别的设备占用
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
ljlOnil
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2010-08-28
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望118点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-06 11:26
是的,用的是10号中断,没被系统占用
ljlOnil
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2010-08-28
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望118点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-06 12:36
为什么没人回答。
lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-06 13:56
用IoConnectInterrupt联接中断成功?你要看看10号中断在windows对应的是什么,不能直接挂10号
ljlOnil
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2010-08-28
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望118点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-06 14:12
跟踪的结果:
Interrupt vector:0000003A
IRQL :17
Affinity: 1
Mode: 1
应该不会错的。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-06 15:35
要初始化的
否则设备怎么会发中断
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
ljlOnil
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2010-08-28
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望118点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-12-06 17:13
设备已经将中断发出,只是我的驱动怎么都收不到。

到底是怎么回事,我都快疯掉了
游客

返回顶部