📄 dsomaindlg.cpp
字号:
// DSOMainDlg.cpp : implementation file
//
#include "stdafx.h"
#include "DSOTEST.h"
#include "DSOMainDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDSOMainDlg dialog
#define TRIGGER_AUTO 0x01
#define TRIGGER_NORMAL 0x02
#define TRIGGER_SIGNLE 0x03
#define TRIGGER_SOURCE_CHA 0x04
#define TRIGGER_SOURCE_CHB 0x05
#define TRIGGER_SOURCE_EXT 0x06
#define TRIGGER_SOURCE_EXT_5 0x07
#define TRIGGER_COUPLINE_DC 0x08
#define TRIGGER_COUPLINE_AC 0x09
#define TRIGGER_COUPLINE_LF 0x0a
#define TRIGGER_COUPLINE_HF 0x0b
#define TRIGGER_EGDE 0x0c
#define TRIGGER_VIDEO_ 0x0d
#define TRIGGER_PLUS 0x0e
#define TRIGGER_EGDE_P 0x0f
#define TRIGGER_EGDE_N 0x10
#define TRIGGER_VIDEO_TV_H 0x11
#define TRIGGER_VIDEO_TV_V 0x12
#define FREQ_SEL_50M 0x13
#define FREQ_SEL_100M 0x14
#define FREQ_SEL_250M 0x15
#define AD9513_S0_CTL_P 0x16
#define AD9513_S0_CTL_N 0x17
#define AD9513_SYNCB_P 0x18
#define AD9513_SYNCB_N 0x19
#define CHA_BW_NOLIMIT 0x1A
#define CHA_BW_ISLIMIT 0x1B
#define CHB_BW_NOLIMIT 0x1C
#define CHB_BW_ISLIMIT 0x1D
#define CHA_CTL_P 0x1E
#define CHA_CTL_N 0x1F
#define CHB_CTL_P 0x20
#define CHB_CTL_N 0x21
#define CHA_PDWN_P 0x22
#define CHA_PDWN_N 0x23
#define CHB_PDWN_P 0x24
#define CHB_PDWN_N 0x25
#define TRIG_SEL_INT 0x26
#define TRIG_SEL_EXT 0x27
#define TRIG_SEL_VIDEO 0x28
#define TRG_SEL_PLUS 0x29
#define VIDEO_TRG_FIELD1 0x2a
#define VIDEO_TRG_FIELD2 0x2b
#define VIDEO_TRG_LINE_NR 0x2c
#define VIDEO_TRG_ALL_LINE 0x2d
#define PLUSE_TRG_AEB 0x2f
#define PLUSE_TRG_ANEB 0x30
#define PLUSE_TRG_AGB 0x31
#define PLUSE_TRG_ALB 0x32
#define PLUSE_SLOPE_P 0x33
#define PLUSE_SLOPE_N 0x34
#define CMD_A 0x41
#define CMD_C 0x43
#define CMD_F 0x46
#define CMD_L 0x4c
#define CMD_M 0x4d
#define CMD_I 0x49
#define CMD_P 0x50
#define CMD_R 0x52
#define CMD_S 0x53
#define CMD_T 0x54
#define CMD_CTL_CHX 0x56
#define CMD_VIDEO_TRG 0x57
#define CMD_PLUSE_TRG 0x58
#define PD 0x2000
#define LDAC 0x1000
#define COMM_NUMBER 8
extern CH_PARAM cha_param;
extern CH_PARAM chb_param;
extern MATH_OPERATION math_operation;
extern RUNNING_CONTROL run_ctrl;
extern TIME_BASE time_base;
extern TRIGGER trigger;
extern TRIGGER_VIDEO trigger_video;
extern ACQUIRE acquire;
extern DISPLAY display;
BYTE coupline_reg;
BYTE ord[COMM_NUMBER];
extern BYTE txbuffer[COMM_NUMBER];
CDSOMainDlg::CDSOMainDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDSOMainDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDSOMainDlg)
m_com_str = _T("");
m_lines = 0;
m_pluse_mes = _T("1ms");
//}}AFX_DATA_INIT
isChaON=true;
isChbON=false;
m_trige_type=0;
isChaDW=false;
isChbDW=false;
isChaInv=false;
isChaInv=false;
cha_probe=10;
chb_probe=10;
isRun=false;
rec_flag=false;
coupline_reg=0;
video_lines=1;
pluse_time=1000000;//ns =1ms
time_uint=0;
}
void CDSOMainDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDSOMainDlg)
DDX_Control(pDX, IDC_PLUSE_TIME_DOWN, m_pluse_time_down_but);
DDX_Control(pDX, IDC_PLUSE_TIME_UP, m_pluse_time_up_but);
DDX_Control(pDX, IDC_PLUSE_TIME_SETUP, m_pluse_time_setup_but);
DDX_Control(pDX, IDC_PLUSE_MES, m_pluse_mes_ctl);
DDX_Control(pDX, IDC_STATIC_VIDEO_TYPE, m_video_type);
DDX_Control(pDX, IDC_STATIC_LEVEL, m_level_ctl);
DDX_Control(pDX, IDC_STATIC_LINE_NR, m_lineNr_ctl);
DDX_Control(pDX, IDC_STATIC_ALL_LINES, m_alllines_ctl);
DDX_Control(pDX, IDC_STATIC_FIELD2, m_field2_ctl);
DDX_Control(pDX, IDC_STATIC_FIELD1, m_field1_ctl);
DDX_Control(pDX, IDC_STATIC_SECAM, m_secam_ctl);
DDX_Control(pDX, IDC_STATIC_NTSC, m_ntsc_ctl);
DDX_Control(pDX, IDC_STATIC_PAL, m_pal_ctl);
DDX_Control(pDX, IDC_LINES_SEL, m_linesSel_ctl);
DDX_Control(pDX, IDC_LINES, m_lines_ctl);
DDX_Control(pDX, IDC_VIDEO_SEL, m_video_trg_ctl);
DDX_Control(pDX, IDC_TV_MODE, m_tvmode_ctl);
DDX_Control(pDX, IDC_SLOPE_SEL, m_slope_ctl);
DDX_Control(pDX, IDC_CHA_OFFSET, m_cha_offset_ctl);
DDX_Control(pDX, IDC_EDIT_MES, m_mes_ctrl);
DDX_Control(pDX, IDC_SLIDER_MEMORY, m_memory_offset_ctrl);
DDX_Control(pDX, IDC_TRIG_SITE, m_trigSit_ctrl);
DDX_Control(pDX, IDC_TRIG_LEVEL, m_trig_level_ctrl);
DDX_Control(pDX, IDC_CHB_INV, m_chb_inv_but);
DDX_Control(pDX, IDC_CHA_INV, m_cha_inv_but);
DDX_Control(pDX, IDC_CHB_DW, m_chb_dw_but);
DDX_Control(pDX, IDC_CHA_DW, m_cha_dw_but);
DDX_Control(pDX, IDC_TRIG_TYPE, m_trig_type_but);
DDX_Control(pDX, IDC_TRIG_COUPLINE, m_trig_coupline_but);
DDX_Control(pDX, IDC_TRIG_MODE, m_trig_mode_but);
DDX_Control(pDX, IDC_CHB_COUPLINE, m_chb_coupline_but);
DDX_Control(pDX, IDC_CHA_COUPLINE, m_cha_coupline_but);
DDX_Control(pDX, IDC_CHB_1X, m_chb_1x_but);
DDX_Control(pDX, IDC_CHB_10X, m_chb_10x_but);
DDX_Control(pDX, IDC_CHB_100X, m_chb_100x_but);
DDX_Control(pDX, IDC_CHA_100X, m_cha_100x_but);
DDX_Control(pDX, IDC_CHA_10X, m_cha_10x_but);
DDX_Control(pDX, IDC_CHA_1X, m_cha_1x_but);
DDX_Control(pDX, IDC_CRUSOR, m_crusor_but);
DDX_Control(pDX, IDC_CHB_ON, m_chb_on_but);
DDX_Control(pDX, IDC_CHA_ON, m_cha_on_but);
DDX_Control(pDX, IDC_TRIG_SOURCE_SELECT, m_TrigSource_but);
DDX_Control(pDX, IDC_TIRG_LEVEL_RESET, m_trig_level_reset_but);
DDX_Control(pDX, IDC_XY, m_xy_but);
DDX_Control(pDX, IDC_FFT, m_fft_but);
DDX_Control(pDX, IDC_SINGLE, m_single_but);
DDX_Control(pDX, IDC_NORAML, m_normal_but);
DDX_Control(pDX, IDC_TIRG_FORCE, m_trig_force_but);
DDX_Control(pDX, IDC_TIRG_EDGE_UP, m_trig_up_but);
DDX_Control(pDX, IDC_TIRG_EDGE_DOWN, m_trig_down_but);
DDX_Control(pDX, IDC_TIRG_CLK_WIDTH, m_trig_clk_width_but);
DDX_Control(pDX, IDC_LOAD, m_load_but);
DDX_Control(pDX, IDC_SAVE, m_save_but);
DDX_Control(pDX, IDC_AUTO, m_auto_but);
DDX_Control(pDX, IDCANCEL, m_off_but);
DDX_Control(pDX, IDC_RUN_STOP, m_run_stop_but);
DDX_Control(pDX, IDC_CHBDB_CTRL, m_chbdbCtl);
DDX_Control(pDX, IDC_CHADB_CTRL, m_chadbCtl);
DDX_Control(pDX, IDC_GRAPH_DSO, m_displayWnd);
DDX_Control(pDX, IDC_TIME_CTRL, m_Time_Ctrl);
DDX_Control(pDX, IDC_MSCOMM, m_ComPort);
DDX_Text(pDX, IDC_MES_EDIT, m_com_str);
DDX_Text(pDX, IDC_LINES, m_lines);
DDV_MinMaxInt(pDX, m_lines, 1, 625);
DDX_Text(pDX, IDC_PLUSE_MES, m_pluse_mes);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDSOMainDlg, CDialog)
//{{AFX_MSG_MAP(CDSOMainDlg)
ON_BN_CLICKED(IDC_TIRG_EDGE_UP, OnTirgEdgeUp)
ON_BN_CLICKED(IDC_TIRG_EDGE_DOWN, OnTirgEdgeDown)
ON_BN_CLICKED(IDC_TIRG_CLK_WIDTH, OnTirgClkWidth)
ON_BN_CLICKED(IDC_CHA_ON, OnChaOn)
ON_BN_CLICKED(IDC_CHB_ON, OnChbOn)
ON_BN_CLICKED(IDC_CRUSOR, OnCrusor)
ON_BN_CLICKED(IDC_TIME_CTRL, OnTimeCtrl)
ON_BN_CLICKED(IDC_CHADB_CTRL, OnChadbCtrl)
ON_BN_CLICKED(IDC_CHBDB_CTRL, OnChbdbCtrl)
ON_BN_CLICKED(IDC_CHA_X1, OnChaX1)
ON_BN_CLICKED(IDC_CHA_10X, OnCha10x)
ON_BN_CLICKED(IDC_CHA_100X, OnCha100x)
ON_BN_CLICKED(IDC_CHB_1X, OnChb1x)
ON_BN_CLICKED(IDC_CHB_10X, OnChb10x)
ON_BN_CLICKED(IDC_CHB_100X, OnChb100x)
ON_BN_CLICKED(IDC_TRIG_TYPE, OnTrigType)
ON_BN_CLICKED(IDC_CHA_DW, OnChaDw)
ON_BN_CLICKED(IDC_CHB_DW, OnChbDw)
ON_BN_CLICKED(IDC_CHA_INV, OnChaInv)
ON_BN_CLICKED(IDC_CHB_INV, OnChbInv)
ON_WM_VSCROLL()
ON_BN_CLICKED(IDC_TRIG_MODE, OnTrigMode)
ON_BN_CLICKED(IDC_TRIG_SOURCE_SELECT, OnTrigSourceSelect)
ON_BN_CLICKED(IDC_TRIG_COUPLINE, OnTrigCoupline)
ON_BN_CLICKED(IDC_CHA_COUPLINE, OnChaCoupline)
ON_BN_CLICKED(IDC_CHB_COUPLINE, OnChbCoupline)
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_RUN_STOP, OnRunStop)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_BN_CLICKED(IDC_LOAD, OnLoad)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_DOWNLOAD, OnDownload)
ON_BN_CLICKED(IDC_PLAY, OnPlay)
ON_BN_CLICKED(IDC_BACK, OnBack)
ON_BN_CLICKED(IDC_NEXT, OnNext)
ON_BN_CLICKED(IDC_SLOPE_SEL, OnSlopeSel)
ON_BN_CLICKED(IDC_TV_MODE, OnTvMode)
ON_BN_CLICKED(IDC_VIDEO_SEL, OnVideoSel)
ON_BN_CLICKED(IDC_PLUSE_TIME_UP, OnPluseTimeUp)
ON_BN_CLICKED(IDC_PLUSE_TIME_DOWN, OnPluseTimeDown)
ON_BN_CLICKED(IDC_PLUSE_TIME_SETUP, OnPluseTimeSetup)
ON_BN_CLICKED(IDC_SINGLE, OnSingle)
ON_BN_CLICKED(IDC_XY, OnXy)
ON_BN_CLICKED(IDC_NORAML, OnNoraml)
ON_COMMAND(IDM_SHILIANG_DISP, OnShiliangDisp)
ON_UPDATE_COMMAND_UI(IDM_SHILIANG_DISP, OnUpdateShiliangDisp)
ON_COMMAND(IDM_NORMAL_CAIJI, OnNormalCaiji)
ON_UPDATE_COMMAND_UI(IDM_NORMAL_CAIJI, OnUpdateNormalCaiji)
ON_COMMAND(IDM_AVERGE_CAIJI, OnAvergeCaiji)
ON_UPDATE_COMMAND_UI(IDM_AVERGE_CAIJI, OnUpdateAvergeCaiji)
ON_COMMAND(IDM_GLITCHES_DETECT, OnGlitchesDetect)
ON_UPDATE_COMMAND_UI(IDM_GLITCHES_DETECT, OnUpdateGlitchesDetect)
ON_COMMAND(IDM_GRAP_BAOCHI, OnGrapBaochi)
ON_UPDATE_COMMAND_UI(IDM_GRAP_BAOCHI, OnUpdateGrapBaochi)
ON_BN_CLICKED(IDC_FFT, OnFft)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDSOMainDlg message handlers
BOOL CDSOMainDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_trig_level_ctrl.SetRange(0,255,1);
m_trig_level_ctrl.SetPos(128);
m_cha_offset_ctl.SetRange(0,310,1); //size=0.5v*1024/3.3V
m_cha_offset_ctl.SetPos(155);
m_trigSit_ctrl.SetRange(1,SAMPLE_DEPTH/2-1,1);
m_trigSit_ctrl.SetPos(SAMPLE_DEPTH/4);
m_memory_offset_ctrl.SetRange(0,SAMPLE_DEPTH-DISWIDTH,5);
m_memory_offset_ctrl.SetPos((SAMPLE_DEPTH-DISWIDTH)/2);
m_Time_Ctrl.SetSwitchNumber (29);
m_Time_Ctrl.SetStartSwitch(0);
m_Time_Ctrl.SetTextColor (RGB(0,0,0));
// m_Time_Ctrl.SetBKColor(RGB(200,200,200));
m_Time_Ctrl.SetDisString ("10s + + 1s + + 0.1s + + 10ms + + 1ms + + 0.1ms + + 10us + + 1us + 200ns + + 20 + 5ns");// + + 10ns");
m_Time_Ctrl.SetSwitchName("Time/Div ");
// m_ch2TimeCtl.SetSwitchNumber (5);
// m_ch2TimeCtl.SetDisString (" 0.1us 0.2us 0.3us 0.4us 0.5us ");
// m_ch2TimeCtl.SetSwitchName("时间常数");
// m_ch2TimeCtl.SetStartSwitch(2);
// m_RoundCtrl.SetBKColor (RGB(51,102,153));
// m_ch2TimeCtl.SetTextColor (RGB(255,0,0));
// m_RoundCtrl.SetLineColor (RGB(255,255,255));
m_chadbCtl.SetSwitchNumber (13);
//m_FT_comb.SetWindowText("5M");
// 10V/Div 5X10V=50V -->衰减100倍=500mV 500/500=1 放大系数 1dB
// 5V/Div 5X5V=25V -->衰减100倍=250mV 500/250=2 放大系数 2dB
// 2V/Div 5X2V=10V -->衰减100倍=100mV 500/100=5 放大系数 5dB
// 1V/Div 5X1v=5V -->衰减100倍=50mV 500/50=10 -------->10dB
// 0.5V/Div 5X0.5V=2.5V -->衰减100倍=25mV 500/25=20 -------->20dB
// 0.2V/Div 5X0.2V=1V -->衰减100倍=10mV 500/10=50 ------->50dB
// 0.1V/Div 5X0.1V=500mV 500/500=1 ------->1dB
// 50mV/Div 5X50mV=250mV 500/250=2 ------->2dB
// 20mV/Div 5X20mV=100mV 500/100=5 ------->5dB
// 10mV/Div 5X10mV=50mV 500/50=10 ------->10dB
// 5mV/Div 5X5mV=25mV 500/25=20 ------->20dB
m_chadbCtl.SetDisString ("500V 200 100 50 20 10 5 2 1V 500mV 200 100 50mV");
m_chadbCtl.SetSwitchName("CHA Volts / Div");
// m_chadbCtl.SetTextColor (RGB(0,0,255));
m_chadbCtl.SetStartSwitch(0);
m_chbdbCtl.SetSwitchNumber (13);
m_chbdbCtl.SetDisString ("500V 200 100 50 20 10 5 2 1V 500mV 200 100 50mV");
m_chbdbCtl.SetSwitchName("CHB Volts / Div");
// m_chbdbCtl.SetTextColor (RGB(0,0,255));
m_chbdbCtl.SetStartSwitch(0);
m_crusor_but.SetIcon(IDI_CRUSOR_OFF);
m_cha_on_but.SetIcon(IDI_CHA_ON_G);
m_chb_on_but.SetIcon(IDI_CHA_ON_B);
m_off_but.SetIcon(IDI_POWER);
m_trig_up_but.SetIcon(IDI_UP_G);
m_trig_down_but.SetIcon(IDI_DOWN_B);
m_trig_clk_width_but.SetIcon(IDI_CLK_WIDTH_B);
m_TrigSource_but.SetSwitchNumber(4);
m_trig_type_but.SetSwitchNumber(3);
m_trig_coupline_but.SetSwitchNumber(4);
m_trig_mode_but.SetSwitchNumber(3);
m_cha_coupline_but.SetSwitchNumber(3);
m_chb_coupline_but.SetSwitchNumber(3);
m_chb_dw_but.SetIcon(IDI_DW_B);
m_cha_dw_but.SetIcon(IDI_DW_B);
m_cha_inv_but.SetIcon(IDI_INV_B);
m_chb_inv_but.SetIcon(IDI_INV_B);
m_cha_10x_but.SetCheck(1);
m_chb_10x_but.SetCheck(1);
m_tvmode_ctl.SetSwitchNumber(3);
m_video_trg_ctl.SetSwitchNumber(4);
m_linesSel_ctl.SetBuddy(&m_lines_ctl);
m_linesSel_ctl.SetRange(1,625);
m_linesSel_ctl.SetPos(1);
::GetWindowRect (m_chadbCtl,&cha_dbCtrl_rect);
::GetWindowRect (m_chbdbCtl,&chb_dbCtrl_rect);
cha_dbCtrl_rect.right+=30;
chb_dbCtrl_rect.right+=30;
for(int i=0;i<COMM_NUMBER;i++)
ord[i]=0;
#ifdef COMM_PORT
int c=SAMPLE_DEPTH*3;
m_ComPort.SetCommPort(3); //选择串行端口
m_ComPort.SetPortOpen(TRUE);
m_ComPort.SetSettings("57600,n,8,1");
m_ComPort.SetInputMode(1);
m_ComPort.SetRThreshold(c);//12
m_ComPort.SetInputLen(0);
m_ComPort.GetInput();
#endif
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDSOMainDlg::OnTirgEdgeUp()
{ ord[0]='C';
if(m_trige_type==0)
{
trigger.slope =0;
ord[1]=TRIGGER_EGDE_P;
m_trig_up_but.SetIcon(IDI_UP_G);
m_trig_down_but.SetIcon(IDI_DOWN_B);
}
else
{ trigger_video.sync=0;
ord[1]=TRIGGER_VIDEO_TV_H;
m_trig_up_but.SetIcon(IDI_VIDEO_TH_G);
m_trig_down_but.SetIcon(IDI_VIDEO_TV_B);
}
SendCommandToUSB(VR_USRCMD);
m_displayWnd.ReDrawSCreen();
}
void CDSOMainDlg::OnTirgEdgeDown()
{
ord[0]='C';
if(m_trige_type==0)
{trigger.slope =0;
ord[1]=TRIGGER_EGDE_N;
m_trig_up_but.SetIcon(IDI_UP_B);
m_trig_down_but.SetIcon(IDI_DOWN_G);
}
else
{trigger_video.sync=1;
ord[1]=TRIGGER_VIDEO_TV_V;
m_trig_up_but.SetIcon(IDI_VIDEO_TH_B);
m_trig_down_but.SetIcon(IDI_VIDEO_TV_G);
}
SendCommandToUSB(VR_USRCMD);
m_displayWnd.ReDrawSCreen();
}
void CDSOMainDlg::OnTirgClkWidth()
{
// m_trig_up_but.SetIcon(IDI_UP_B);
// m_trig_down_but.SetIcon(IDI_DOWN_B);
// m_trig_clk_width_but.SetIcon(IDI_CLK_WIDTH_G);
}
void CDSOMainDlg::OnChaOn()
{
cha_param.display=!cha_param.display;
// ord[0]='C';
if(cha_param.display){
// ord[1]=CHA_PDWN_N;
m_cha_on_but.SetIcon(IDI_CHA_ON_G);
}
else{
// ord[1]=CHA_PDWN_P;
m_cha_on_but.SetIcon(IDI_CHA_ON_B);
}
// SendCommandToUSB(VR_USRCMD);
m_displayWnd.ReDrawSCreen();
}
void CDSOMainDlg::OnChbOn()
{
chb_param.display=!chb_param.display;
// ord[0]='C';
if(chb_param.display){
// ord[1]=CHB_PDWN_N;
m_chb_on_but.SetIcon(IDI_CHB_ON_Y);
}
else{
// ord[1]=CHB_PDWN_P;
m_chb_on_but.SetIcon(IDI_CHA_ON_B);
}
// SendCommandToUSB(VR_USRCMD);
m_displayWnd.ReDrawSCreen();
}
void CDSOMainDlg::OnCrusor()
{
static BYTE isCrusor;
isCrusor++;
if(isCrusor>4)isCrusor=0;
m_displayWnd.OpenScaleLine(isCrusor);
switch (isCrusor)
{case 0:
m_crusor_but.SetIcon(IDI_CRUSOR_OFF);
break;
case 1:
m_crusor_but.SetIcon(IDI_TWO_V);
break;
case 2:
m_crusor_but.SetIcon(IDI_TWO_H);
break;
case 3:
m_crusor_but.SetIcon(IDI_ONE_V);
break;
case 4:
m_crusor_but.SetIcon(IDI_ONE_H);
break;
}
}
//10s + + 1s + + 0.1s + + 10ms + + 1ms + + 0.1ms + + 10us + + 1us + + 0.1us + + 10ns
//constant F25Mhz : std_logic_vector(15 downto 0) :=X"3ec8";
//constant F50Mhz : std_logic_vector(15 downto 0) :=X"3cc8";
//constant F100Mhz : std_logic_vector(15 downto 0) :=X"3ac8";
//constant F125Mhz : std_logic_vector(15 downto 0) :=X"3afa";
//constant F200Mhz : std_logic_vector(15 downto 0) :=X"38c8"; -- //0x28c8
//constant F250Mhz : std_logic_vector(15 downto 0) :=X"38fa";-- //0x28fa
//constant F300Mhz : std_logic_vector(15 downto 0) :=X"392c";
/****************************** 采样控制 *******************
ord[1],ord[2] =SY89429频率控制字
ord[3],ord[4],ord[5]=低频采样分频系数
ord[6](0)=LOW_AD
ord[6](1)=En_trig_delay
***********************************************************/
const int step[]={2,4,10,20,40};
void CDSOMainDlg::OnTimeCtrl()
{
int i=m_Time_Ctrl.GetSelectSwitch();
time_base.time_d =i;
time_base.x_step=1;
BYTE c;
ord[0]=CMD_F;
//ord[1]=0x3e;
//ord[2]=0xc8;
c=FREQ_SEL_50M;
if(acquire.acquisition==0||acquire.acquisition==1)
ord[6]=0x03;//低速采样 允许触发延时
else
ord[6]=0x07;//低速采样 允许触发延时 峰值采样
switch(i)
{
case 0: //10s 1 pixel =10/50=0.2s 200ms 采样率50M/s 分频因 5000000-1=4999999 每个200ms采集并绘制一点
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -