阅读:2353回复:9
使用EPP或ECP模式响应实时中断可以吗?
使用EPP或ECP模式响应实时中断可以吗?读取外部的数据并且控制外部设备?
|
|
|
沙发#
发布于:2001-06-30 17:29
你好!
原则上可以,但你能保证你GET到的数据的准确,完整。并不过份占用CPU资源吗?如果你有好方案希望能够探讨! 谢谢!我的EMAIL:lizy_01@sina.com |
|
板凳#
发布于:2001-06-30 20:27
可以用vxd hook IRQ 7,然后调用dpc来读并口的数据就行了。
|
|
地板#
发布于:2001-07-02 15:41
To Principal;
Would you please give me some detailed information? What is your development environment?(OS+Tools) Thanks in advance! |
|
地下室#
发布于:2001-07-04 10:22
我凭在DOS下的调试经验告诉你.在DOS这种实时独占的环境下.486以上配置.在并口上读取数据.用中断方式最高有几K的中断速度.不能依靠主板性能的提升,提升很多性能.
|
|
|
5楼#
发布于:2001-07-04 16:32
我也试过改VToolsD生成的hook irq 8 的例子为hook irq 7,但为什么不行呢?hook()返回失败。哪位大侠有现成的例子,可否让小弟参考一下?
|
|
|
6楼#
发布于:2001-07-04 17:05
Hi,H_Happy;
Do you have the samples under MS-DOS? Any information you can provide will be deeply appreciated. |
|
7楼#
发布于:2001-07-04 17:15
对不起,那是很久以前的事情了.毕设时偶然用了一下.就扔了.
至于并口的设置我忘了,就不写了.总之是把379,37A设妥.然后看一下,有没有其他占用中断7的设备. 往中断7对应的管脚,放脉冲.这对于硬件调试是很方便的.首先在DOS下确定你的硬件没有问题.然后再上WINDOWS.要不,就有你好看了. #include <stdio.h> #include <dos.h> #include <conio.h> #define INTR 0X0f /* The interrupt 7 */ #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif void interrupt ( *oldhandler)(__CPPARGS); int count=0; void interrupt handler(__CPPARGS) { /* increase the global counter */ count++; // INT=inport(INT_STATUS); if (INT) printf(); outportb(0x20,0x20); else /* call the old routine */ oldhandler(); } int main(void) { unsigned x; /* save the old interrupt vector */ oldhandler = getvect(INTR); /* install the new interrupt handler */ setvect(INTR, handler); outportb(0x21,&0x00); x=inportb(0x21); enable(); outportb(0x20,0x20); /* loop until the counter exceeds 20 */ while (count < 20) printf("count is %d\n",count); /* reset the old interrupt handler */ setvect(INTR, oldhandler); return 0; } |
|
|
8楼#
发布于:2001-07-04 23:11
我正好有有关并口操作的说明书,感兴趣可以发给你,希望对你有帮助
|
|
9楼#
发布于:2001-07-05 10:59
Hi,H_Happy & Caigh;
Thank you very much. (1)Do you have any references in a Win32 application? I am now programming the Parallel Port with VC++6.0,but can't find any samples. (2)Caigh,I send a mail to you.Would U please email me the data? Thanks again. |
|