以下介绍是如何实现向ISR注册中断服务线程(IST):
首先定义中断主要参数,这里由ThreadISTData结构体实现,它同时也用于向IST传递参数。
typedef struct _ThreadISTData{
boolean abort;
DWORD dwIRQ; //中断号
DWORD sysIntr;
unsigned short m_nISTPriority ; //线程优先级
HANDLE hEvent ; //事件, 用于操作系统与IST同步
HANDLE hThread;
} ThreadISTData;
hreadISTData g_ThreadISTData;
然后创建中断服务线程(IST),并设置中断优先级,求出逻辑中断。
g_ThreadISTData.hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) ThreadIST, &g_ThreadISTData, CREATE_SUSPENDED, NULL);
CeSetThreadPriority(g_ThreadISTData.hThread,g_ThreadISTData.m_nISTPriority);
g_ThreadISTData.sysIntr = SYSINTR_FIRMWARE + INTR;// 求逻辑中断
最后初始化,中断服务线程(IST),并使其进入运行态。
InterruptInitialize(g_ThreadISTData.sysIntr, g_ThreadISTData.hEvent, NULL, 0);
ResumeThread(g_ThreadISTData.hThread); //启动中断服务线程(IST)
通过以上代码,即可较为简洁可靠的实现脑电采集的驱动程序, 省去理解WinCE的复杂的驱动模型和编写多个驱动标准函数。
7 总结
本文讨论了WinCE几种外设接口的应用特点, 以其在脑电采集系统的应用为例,重点论述了非标准驱动程序的开发方法。 WinCE作为微软公司不断改进的嵌入式操作系统, 它提供了丰富的接口软件和编程方式。我们要本着简洁,高效,可靠的原则,选用更优越的接口方式和编程方式,使其在我们的采集系统中得到更高的实时性和可靠性。
上一页 [1] [2]
本文关键字:数据采集 接口 外设 Windows 接口电路,单元电路 - 接口电路