首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么触发硬中断?让其响应自己的ISR

2012-03-07 
如何触发硬中断?让其响应自己的ISR某个嵌入CPU使用2个8259编写watchdogtimer,其timeout时触发IRQ12可是程

如何触发硬中断?让其响应自己的ISR
某个嵌入CPU使用2个8259
编写watchdogtimer   ,其   timeout时触发IRQ12
可是程序没有响应。
以下程序有问题,
      ISR_OLD=getvect(12);
  /*   When   IRQ12   is   called,   ISR()   to   print   "HELLO   "*/
        disable();
        setvect(12,   ISR);
        enable();
        setvect(12,ISR_OLD);

请教达人

[解决办法]
disable(); //防止你设置0a中断时被其它中断程序中断,必须先禁止其它中断
ISR_OLD=getvect(0x0a);
setvect(0x0a,ISR);
enable(); //这里再允许其它中断
       //DOS下0-255号中断大部分已被系统定义,你只能按它的定义来使
       //这是由硬件决定的,比如你想用一个简单的时钟中断,就可以用
//1c,具体该用多少号中断可以查DOS手册


setvect(0x0a, ISR_OLD); //同理,这理也就先禁止再开放中断
[解决办法]
不会 帮你顶
[解决办法]
什么cpu啊,定时器相关的寄存器配置都正确吗?
还有就是楼上所说的中断优先级匹配问题,会不会被高一级的中断破坏导致不触发中断。。。

[解决办法]
学习

热点排行