请哪位用过InterruptInitialize()的朋友过来帮助一个。

cjandy 2002-09-16 11:50:39
我用InterruptInitialize()与一个中断关联,但是中断线程函数总是不被执行,请哪位用过此功能的朋友讲解一下用法。
...全文
65 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjandy 2002-09-17
  • 打赏
  • 举报
回复
to 2位:
我的程序,在一开始运行时,我的线程函数(CAN0DispatchThread)就运行了一下,然后就再也不执行了,我想请问:
这是不是有了一个中断?
是不是应在线程函数中加入InterrupDone(),这个函数是不是重新启动中断?

to LLnju(LLnju):
您说把“CAN卡3号寄存器(Interrup Register)读出来然后立即写回去”就可以正常工作了,是不是指中断就好使了?
91program 2002-09-16
  • 打赏
  • 举报
回复
贴出您的代码来...
LLnju 2002-09-16
  • 打赏
  • 举报
回复
CANW( 3 , CANR( 3 ) ) 是把CAN卡3号寄存器(Interrup Register)读出来然后立即写回去。
我看的DOS下的程序并没有这个操作,不知道为什么原因。还有谁遇到过同样的问题,能不能说一下原因。
LLnju 2002-09-16
  • 打赏
  • 举报
回复
CAN卡硬件的问题,如下处理后可以正常工作 CANW( 3 , CANR( 3 ) ) , 不要问我原因,我也不知道,试这个毛病我用了3天时间。
91program 2002-09-16
  • 打赏
  • 举报
回复
上面的代码好像是对的,并且您的理解也没有错。

我想问一下,您的驱动是如何加载的?

以下是一键盘的驱动程序部分代码,确定是对的:
BOOL Ps2Keybd::IsrThreadProc()
{
//RETAILMSG(1,(TEXT("IsrThreadProc:\r\n")));
m_hevInterrupt = CreateEvent(NULL,FALSE,FALSE,NULL);
if (m_hevInterrupt != NULL) {
if (InterruptInitialize(SYSINTR_KEYBOARD,m_hevInterrupt,NULL,0)) {
KeybdIstLoop(m_hevInterrupt);
}
}
return 0;
}
cjandy 2002-09-16
  • 打赏
  • 举报
回复
再请问一下,在CE上编驱动的中断还有没有别的方法,我真希望有人能介绍一下,我是个初学者,第一次在CE上编程,第一次编中断的驱动。
cjandy 2002-09-16
  • 打赏
  • 举报
回复
HANDLE hGlobalWriteEvent;
void Init()
{
HANDLE hEvent1;
hGlobalWriteEvent=CreateEvent(NULL, FALSE, FALSE, NULL);
if ( hGlobalWriteEvent == NULL )
{
AfxMessageBox(_T("CreateEvent() not done\n"));
return(FALSE);
}

if ( !InterruptInitialize(CAN_IRQ_1,hGlobalWriteEvent,NULL,0) )
{
return(FALSE);
}

InterruptDone(CAN_IRQ_1);

hEvent1 = CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)CAN0DispatchThread, hGlobalWriteEvent, 0,NULL);

if ( hEvent1 == NULL ) {
return(FALSE);
}
CeSetThreadPriority(hEvent1, 152);
return(TRUE);
}

void CAN0DispatchThread(LPVOID lpParam)
{
//线程函数
}

这上面大部分是照帮助上抄的,编译执行都过去了,但是就是CAN0DispatchThread除了一开始时执行一下后就再也不执行了。

我的理解是如果上面的代码都正确的话,当我的设备一发生中断时就应执行CAN0DispatchThread这个线程函数了,请问对不对。

19,524

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧