阅读:782回复:5
求征源代码,我实在没招了
要求:实时响应IRQ=3,频率大约2240Hz,
服务函数功能: 读0x300,如果为:xxxxxxx0B,读0x301 xxxxxx0xB,写0x301 Handphone: 13831342504 君子不相欺 |
|
|
沙发#
发布于:2003-03-01 15:07
还不如把你的相关的代码详细贴上。 :D
|
|
板凳#
发布于:2003-03-02 13:50
OnHardwareInt()函数根本没反应 你说怪不怪? // HKWTXK.h - include file for VxD HKWTXK #include <vtoolscp.h> #define DEVICE_CLASS HkwtxkDevice #define HKWTXK_DeviceID UNDEFINED_DEVICE_ID #define HKWTXK_Init_Order UNDEFINED_INIT_ORDER #define HKWTXK_Major 1 #define HKWTXK_Minor 0 //通讯卡占用的中断号:IRQ=3 #define HKWTXK_IRQ 3 //通讯卡端口地址 #define HKWTXK_IN1 0x300 #define HKWTXK_IN2 0x301 //定义虚拟硬件中断类HkwtxkInt,方式:独占IRQ=3 class HkwtxkInt : public VHardwareInt { public: HkwtxkInt():VHardwareInt(HKWTXK_IRQ,0,0,0){}; //定义构造函数 virtual VOID OnHardwareInt(VMHANDLE); //重载中断通知处理成员函数 }; //定义虚拟设备类HkwtxkDevice class HkwtxkDevice : public VDevice { public: HkwtxkInt * pIRQInt; virtual BOOL OnSysDynamicDeviceInit(); virtual BOOL OnSysDynamicDeviceExit(); virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams); }; // Hkwtxk.cpp - main module for VxD HKWTXK #define DEVICE_MAIN #include \"hkwtxk.h\" Declare_Virtual_Device(HKWTXK) #undef DEVICE_MAIN //接收到的数据 unsigned char valuein; //重载中断响应函数 VOID HkwtxkInt::OnHardwareInt(VMHANDLE hVM) { dprintf(\"I am waiting for you .........\"); sendPhysicalEOI(); } //当W32调用CreateFile()时,此函数被VPICD调用 BOOL HkwtxkDevice::OnSysDynamicDeviceInit() { dprintf(\"StartInt!\"); pIRQInt=new HkwtxkInt(); //分配pIRQInt内存不成功,挂接OnHardwareInt() if((!pIRQInt) || (!pIRQInt->hook())) { return FALSE; } pIRQInt->physicalUnmask(); dprintf(\"OnSysDynamicDeviceInit\"); return TRUE; } //当W32调用CloseHandle()时,此函数被VPICD调用 BOOL HkwtxkDevice::OnSysDynamicDeviceExit() { if(pIRQInt) { delete pIRQInt; } dprintf(\"OnSysDynamicDeviceExit\"); return TRUE; } //用于W32与HKWTXK.VxD接口 DWORD HkwtxkDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams) { return 0; } |
|
|
地板#
发布于:2003-03-02 14:10
没有什么错呀,你确定硬件产生中断了吗?
|
|
地下室#
发布于:2003-03-02 14:15
你有源代瘁
|
|
|
5楼#
发布于:2003-03-02 15:04
和你的一样的。
不过我没有3的中断产生,就没有验证了。 |
|