首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

事件的有关问题,不好意思没分了,下次补上

2012-05-05 
事件的问题,不好意思没分了,下次补上驱动里有一个中断事件的线程do{dwEventStatus WaitForSingleObject(

事件的问题,不好意思没分了,下次补上
驱动里有一个中断事件的线程
do
{
  dwEventStatus = WaitForSingleObject(m_CAMISPEvent, INFINITE);  
if(dwEventStatus==WAIT_OBJECT_0)
  {  
EnterCriticalSection(&m_readwriteBuf);
setting = INREG32(&S_GetCCDCRegs()->CCDC_SYN_MODE);  
setting = INREG32(&S_GetIspCfgRegs()->IRQ0STATUS);
RETAILMSG(1,(_T("IRQ0: 0x%08x\r\n"), setting));
OUTREG32(&S_GetIspCfgRegs()->IRQ0STATUS, setting);  
InterruptDone(m_CAMISPIntr);
m_DataisFull = TRUE;
LeaveCriticalSection(&m_readwriteBuf);
  }
}while(1);
这个线程接收的是中断消息,会不断写一个BUF
现在我的应用想要读取这个BUF,我用settimer是可以读到buf内容的
但是我想用事件方式,让应用在等到事件后去读取BUF
碰到的问题是:应用我也创建了同名事件,然后像上面一样用了while(1)的线程,等待事件,结果是系统很卡,并且驱动应用事件收到一次后就不动了。
想问的问题是:可否用两个WaitForSingleObject等待同一个中断事件,然后为什么会出现我上面的现象,再个有没有其它更好方式?

[解决办法]

探讨

呵呵,解决了

另外创建一个事件,在中断事件里再SetEvent,应用就可以收到了

热点排行