|
换算电压有点不对,请指点一下
//转换公式:电压 = data * 8 * 通道电压档位 / 255
m_nDevIndex = 0;
m_nCH1VoltDIV = 5;//1V/DIV
m_nCH2VoltDIV = 5;//1V/DIV
m_nTimeDIV = 14;//1MSa/s
if(dsoOpenDevice(0))
{
dsoChooseDevice(m_nDevIndex,1);
dsoGetCalLevel(m_nDevIndex,m_nCalData,32);
dsoSetVoltDIV(m_nDevIndex,0,m_nCH1VoltDIV);
dsoSetVoltDIV(m_nDevIndex,1,m_nCH2VoltDIV);
dsoSetTimeDIV(m_nDevIndex,m_nTimeDIV);
}
else
{
AfxMessageBox("No device was found!");
}
short* pCH1Data;
short* pCH2Data;
ULONG nReadLen = 10240;//10k
ULONG nDrawLen = 10000;
short nTrigLevel = 64;
short nSlope = 0;// 0:Rise; 1: Fall
short nHTrigPos = 50;// 0 ~ 100
ULONG nTrigPoint = 0;
CRect rc;
m_stcDraw.GetClientRect(&rc);
pCH1Data = new short[nReadLen];
pCH2Data = new short[nReadLen];
short nRe = dsoReadHardData(m_nDevIndex,// 设备的索引值
pCH1Data,//存储CH1数据的缓冲区指针
pCH2Data,//存储CH2数据的缓冲区指针
nReadLen,//读取数据的长度
m_nCalData,//校对电平(参考函数dsoGetCalLevel )
m_nCH1VoltDIV,//CH1的电压档位
m_nCH2VoltDIV,//CH2的电压档位
0,//扫频模式—0: AUTO; 1: Normal; 2: Single
0,//触发信源--- 0: CH1; 1: CH2
nTrigLevel,//触发电平 – 0 ~ 255
nSlope,//触发沿方式—0: Rise; 1: Fall
m_nTimeDIV,//采样率档位
nHTrigPos,//水平触发位置---0 ~ 100
nDrawLen,//显示数据的长度
&nTrigPoint,//返回触发点的索引值
0//差值方式—0: Step 差值; 1: Line 差值; 2: SinX/X 差值
);
//2. 转换公式:电压 = data * 8 * 通道电压档位 / 255
for (int i = 0; i<nReadLen; i++)
{
int temp = (int)pCH1Data * 8 * m_nCH1VoltDIV / 255;
float temp_1 = temp;
}
|
|