阅读:1039回复:11
看看我的代码?才2100Hz,每次就读One Byte,都响应不过来.
但是我的中断服务程序总是响应不过来,看看我的代码:
BOOL XXX::OnSharedHardwareInt(VMHANDLE hCM) { byte300h = _inp(0x300);//用于判断是否是自己的中断. if(0x00 == (byte300h & 0x01)) //自己的中断 { byte301h = _inp(0x301); //读数据 ++counter; //调试 if(counter >= 60) { counter = 0; } dprintf(\"\\ncounter=%d val=%d\",counter,byte301h); } sendPhysicalEOI(); return FALSE; } 老大,我错在哪里了? 2100Hz,每次一字节,卡上64字节缓冲,出现响应不过来的问题. |
|
|
沙发#
发布于:2003-08-13 13:32
if(NOT_your_INT)
{ return FALSE; } ... return TRUE; |
|
板凳#
发布于:2003-08-13 13:39
你是说不是自己的,必须马上返回FALSE?
是自己的一定要返回TRUE吗? 传下去不行? |
|
|
地板#
发布于:2003-08-13 13:41
不是自己的马上返回FALSE,还有别的ISR等着处理。
你可以全返回FASLE:D,应该就是没有人管这个中断了。 不过你的不是ISA的吗?应该独占中断呀。 |
|
地下室#
发布于:2003-08-13 13:44
我测过IRQ3线,系统有很多别的中断,独占方式不行,初始化出错.
|
|
|
5楼#
发布于:2003-08-13 13:46
再问一下:
我共享APP的数组,用事件方式通知APP的接收线程来取,乒乓方式操作缓冲区.有人说这种还不是最快的,是吗? |
|
|
6楼#
发布于:2003-08-13 13:50
what\'s “乒乓方式”?
|
|
7楼#
发布于:2003-08-13 13:52
把共享缓冲区分成两半,驱动写满一半,就通知APP,自己再写另一半.
|
|
|
8楼#
发布于:2003-08-13 13:55
你就那么些数据,这样也够了呀。
|
|
9楼#
发布于:2003-08-13 13:56
谢谢,我去试试,有问题再来.
|
|
|
10楼#
发布于:2003-08-13 13:59
累死了,qq聊吧,我开一下午先。
|
|
11楼#
发布于:2003-08-13 16:10
ISA的中断,频率最高能到多少,哪位有经验的大虾说一下!
|
|
|