vc和时间赛跑,可行否 情况是这样的,我做一个控制系统,根据脉冲定位来做判断控制硬件,用单片机来数脉冲,每数10个通过串口告诉主机,主机记脉冲来处理已知:2个毫秒约10个脉冲 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 毫秒级应该还好,150ms挺好应付的,不过2ms在用户态下略微有点。。 // 在windows系统下处理2ms一次的中断?// 估计会多次通讯合并为一次 2ms做不到吧,windows的计时器55ms才会触发。http://www.aogosoft.com/bbs/view.asp?id=74217 不是中断了,2MS只是一次通信,我用来数脉冲的,拿过来只作计数处理,[code=Assembly]UINT CommProc(LPVOID pParam){ OVERLAPPED os; DWORD dwMask, dwTrans; COMSTAT ComStat; DWORD dwErrorFlags; memset(&os, 0, sizeof(OVERLAPPED)); os.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL); if(os.hEvent==NULL) { AfxMessageBox("Can't create event object!"); return (UINT)-1; } while(m_bRun) { ClearCommError(m_hCom,&dwErrorFlags,&ComStat); if(ComStat.cbInQue) { //无限等待WM_COMMNOTIFY消息被处理完 WaitForSingleObject(m_hHandle,INFINITE); ResetEvent(m_hHandle); //接收数据 continue; } dwMask=0; if(!WaitCommEvent(m_hCom,&dwMask,&os)) //重叠操作 { if(GetLastError()==ERROR_IO_PENDING) // 无限等待重叠操作结果 GetOverlappedResult(m_hCom,&os,&dwTrans,TRUE); else { CloseHandle(os.hEvent); return (UINT)-1; } } } CloseHandle(os.hEvent); return 0;}[/code]帮我优化,现在做不到,要加延时 VC刷新问题 MFC对话框程序获取HDC的句柄//是OnPaint函数的CPaintDC dc(this)? 中秋散分 MFC中包含lib包的.h文件出错,谁能帮帮我? 请问CRuntimeClass::CreateObject怎么总返回NULL 在新开的线程里创建对话框出错! 如何取得一个证书的证书目的? 如何用ADSI操作DNS? 100分送上! 新人求教,CString转换成float类型数据失真怎么解决啊? 请详解,不然我看不懂。 右下脚弹出窗口 怎么使用JavaScript调用mfc中的方法
// 估计会多次通讯合并为一次
{
OVERLAPPED os;
DWORD dwMask, dwTrans;
COMSTAT ComStat;
DWORD dwErrorFlags;
memset(&os, 0, sizeof(OVERLAPPED));
os.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);
if(os.hEvent==NULL)
{
AfxMessageBox("Can't create event object!");
return (UINT)-1;
}
while(m_bRun)
{
ClearCommError(m_hCom,&dwErrorFlags,&ComStat);
if(ComStat.cbInQue)
{
//无限等待WM_COMMNOTIFY消息被处理完
WaitForSingleObject(m_hHandle,INFINITE);
ResetEvent(m_hHandle);
//接收数据
continue;
}
dwMask=0;
if(!WaitCommEvent(m_hCom,&dwMask,&os)) //重叠操作
{
if(GetLastError()==ERROR_IO_PENDING)
// 无限等待重叠操作结果
GetOverlappedResult(m_hCom,&os,&dwTrans,TRUE);
else
{
CloseHandle(os.hEvent);
return (UINT)-1;
}
}
}
CloseHandle(os.hEvent);
return 0;
}[/code]帮我优化,现在做不到,要加延时