NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

采集时用户面板的问题

我用时钟控制数据采集,每阁一秒采集一次并显示,在启动采集后用户面板上的其他按钮几乎没
用,cpu占用100%,那为高手帮帮忙怎么样才能不这样?延时我也加过也不行
对了我是用CVI的 
下面是我的采集程序:
      switch(control)
       {
        case PANEL_STOP:
             if(event == EVENT_COMMIT)
              iStart = 0 ; 
                 break ;
        default:
  SetTraceAttribute
(panel,PANEL_CHART,1,ATTR_TRACE_COLOR,VAL_GREEN) ;
      GetCtrlVal(panel,PANEL_FREQUENCY,&dSampRate) ;
     // GetCtrlVal(panel,PANEL_GAIN,&iGain) ;
      SetCtrlVal(panel,PANEL_LED,iStart) ;
             if(iStart == 1)
     {  
/*由采样频率获得采样时间及其单位*/
        iStatus = DAQ_Rate
(dSampRate,iUnits,&iSampleTB,&uSampInt) ;
       
/*从指定的设备中读取数据 */
        iStatus = DAQ_Start
(iDevice,iChan,iGain,piBuffer,ulCount,iSampleTB,uSampInt) ;
        while((iDAQstopped != 1)&&(iStatus == 0))
        {
/*判断是否采集完成*/
          iStatus = DAQ_Check
(iDevice,&iDAQstopped,&ulRetrieved) ;
   Delay (0.010); 
        }
/*转换数据*/
        iStatus = DAQ_VScale
(iDevice,iChan,iGain,dGainAdjust,dOffset,ulCount,piBuffer,pdVoltBuffer) ;
                      /*显示采集数据*/
PlotStripChart
(panel,PANEL_CHART, pdVoltBuffer, 1000, 0, 0, VAL_DOUBLE);

/*显示采样时间 */
SetCtrlVal
(panel,PANEL_TB,iSampleTB) ;

/*显示采样单位*/
SetCtrlVal
(panel,PANEL_INT,iUnits) ;
//iStatus = DAQ_Clear(iDevice) ;
   break ;
}
 }
0 项奖励
1 条消息(共 1 条)
3,631 次查看