我用时钟控制数据采集,每阁一秒采集一次并显示,在启动采集后用户面板上的其他按钮几乎没
用,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 ;
}
}