我做的是一个数据采集的问题.
需要采集两个数据(压力和流量).
两个数据采集到计算机后再vc中实时显示.每隔一段时间采集一个数据点.
两个数据分别从一个数据采集卡的两个通道传入.希望两个数据采集的启停互不干扰.
我用了两个定时器.两个按钮分别设置两个定时器的开启.定时器1开启时设通道号为0(采集0通道的数据到一个静态文本框).定时器2开启时设通道号为1(采集1通道的数据到另一个静态文本框)
可是当一个定时器工作时能实现我的要求.两个定时器一个工作时,两个定时器下的动作相反了
请各位高手帮忙!

解决方案 »

  1.   

    void CTestMultiColorPlotCtrlDlg::OnButton1() 
    {   
     SetTimer(0,500,NULL); ......
    ......
    }void CTestMultiColorPlotCtrlDlg::OnButton3() 
    {   
     SetTimer(1,500,NULL); ......
    ......
    }void CTestMultiColorPlotCtrlDlg::OnTimer(UINT nIDEvent) 
    {
       switch(nIDEvent) 
       { 
        case 0: 
        ptAIConfig.DasChan=0;
    ptAIVoltageIn.chan=0;      //通道0
    m_ctrlMultiColorPlot.SetData(( float )fVoltage) ;  //一个文本框显示通道0的数据
           break; 
    case 1: 
            ptAIConfig.DasChan=1;
    ptAIVoltageIn.chan=1;        //通道1
    m_ctrlLiuLiang.SetData(( float )fVoltage);     //另一个文本框显示通道1的数据
           break;
       
       }   
       
    CDialog::OnTimer(nIDEvent);
      

  2.   

    在SWITCH里设断点先看看两个通道里取出来的值是不是正确的....上面的代码一眼好象没看出问题来好象没有看到KillTimer的控制,难道你的两个计时器开了就不关的吗?
      

  3.   


    是不是你的 (float )fVoltage值没控制好啊?