Please select To the mobile version | Continue to access the desktop computer version

Electronic Engineer Discuss

View: 4297|Reply: 5

HT6022BE虚拟示波器第二次开发问题

[Copy link]

1

Threads

3

Posts

3

Credits

新手上路

Rank: 1

Credits
3
Post time 2020-11-19 18:59:01 | Show all posts |Read mode

1.那个前辈有编有C#版本
2.pCH1Data返回ad值怎样换算成电压值(例 :1.538V)
3.显示测试频率
Reply

Use magic Report

56

Threads

222

Posts

394

Credits

版主

Rank: 7Rank: 7Rank: 7

Credits
394
Post time 2020-11-26 11:49:45 | Show all posts
luyongmaokf replied at 2020-11-24 10:34
换算电压有点不对,请指点一下

        //转换公式:电压 = data * 8 * 通道电压档位 / 255

int temp = (int)pCH1Data * 8 * m_nCH1VoltDIV / 255;

m_nCH1VoltDIV是电压档位索引值,不是电压档位电压值,要换成电压值(例如1.0V/DIV,取1.0这个值),公式直接使用float或double计算,不要int转换。

56

Threads

222

Posts

394

Credits

版主

Rank: 7Rank: 7Rank: 7

Credits
394
Post time 2020-11-23 14:33:13 | Show all posts



1. 开发示例没有C#
2. 转换公式:电压 = data * 8 * 通道电压档位 / 255
3. 频率(也包括其他属性)是对获取的波形数据进行计算得出。

1

Threads

5

Posts

5

Credits

新手上路

Rank: 1

Credits
5
Post time 2020-11-23 23:49:35 | Show all posts
我有写过在虚拟示波器软件上用的插件,不过好像48Mhz采样有问题,应该是经过插值计算还是怎么回事,得回来的数据不准确,频率显示为正常值的两倍

1

Threads

3

Posts

3

Credits

新手上路

Rank: 1

Credits
3
 Author| Post time 2020-11-24 10:34:01 | Show all posts
ying replied at 2020-11-23 14:33
1. 开发示例没有C#
2. 转换公式:电压 = data * 8 * 通道电压档位 / 255
3. 频率(也包括其他属性)是对 ...

       换算电压有点不对,请指点一下

        //转换公式:电压 = 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;
        }

1

Threads

3

Posts

3

Credits

新手上路

Rank: 1

Credits
3
 Author| Post time 2020-12-2 16:54:30 | Show all posts
ying replied at 2020-11-26 11:49
int temp = (int)pCH1Data * 8 * m_nCH1VoltDIV / 255;

m_nCH1VoltDIV是电压档位索引值,不是电压档位电 ...

多谢!我再看SDK(VB6.0)_HTMarchdll-CHS.pdf文档后,彻底了解

3.  函数声明:
HTMARCH_API short  WIN_API dsoSetVoltDIV(unsigned short DeviceIndex,int
nCH,int nVoltDIV);
返回值:1 表示设置成功;0 表示设置失败
参数:
DeviceIndex
表示当前设备的索引值。
nCH:
信道索引值。0 表示 CH1,1 表示 CH2。
nVoltDIV:
电压档位索引值。最小电压档位为 0。以下是索引值代表的档位
0: 20mV/DIV
1: 50mV/DIV
2: 100mV/DIV
3: 200mV/DIV
4: 500mV/DIV
5: 1V/DIV
6: 2V/DIV
7: 5V/DIV
备注:
判断索引值为 DeviceIndex 的设备是否连接.
程序举例:
dsoSetVoltDIV(0,0,5);// 设置 CH1 的电压档位为 1V/DIV.
You have to log in before you can reply Login | Register

Points Rules

QQ|Dark room|Mobile|Archiver|Electronic Engineer Discuss

2021-5-9 21:43 GMT+8 , Processed in 0.213987 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

Quick Reply To Top Return to the list