📄 modmain.bas
字号:
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD9954"
' Case "00001100": 'AD80XXX - Linear Sweep, 14 Bit DAC
' frmSplash.AddStatLine " DUT2: AD80XXX."
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD80XXX"
' Case Else:
' frmSplash.AddStatLine " DUT2: Not Installed!!!"
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: Not Inst."
' End Select
frmSplash.AddStatLine " DUT1: Not Installed."
Case 3:
'Read the CFR2 register to detect the DUT
DUT1_CFR2 = EvalBd.SerialRead(1, &H1)
DUT2_CFR2 = EvalBd.SerialRead(2, &H1)
'Trimm off everything except the bond option bits
DUT1_CFR2 = Left(DUT1_CFR2, 8)
DUT2_CFR2 = Left(DUT2_CFR2, 8)
'Decode the bits for DUT1
frmSplash.AddStatLine " DUT1: " & GetProductString(DUT1_CFR2) & "."
mdiMain.stbStatusBar.Panels(2).Text = "DUT1: " & GetProductString(DUT1_CFR2) & "."
'Decode the bits for DUT2
frmSplash.AddStatLine " DUT2: " & GetProductString(DUT2_CFR2) & "."
mdiMain.stbStatusBar.Panels(3).Text = "DUT2: " & GetProductString(DUT2_CFR2) & "."
' Select Case DUT1_CFR2
' Case "00011010": 'Evaluation Product
' frmSplash.AddStatLine " DUT1: AD9954E." 'Evaluation Product"
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: AD9954E"
' Case "00000101": 'AD9859 - No Options,10 bit DAC
' frmSplash.AddStatLine " DUT1: AD9859."
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: AD9859"
' Case "00000100": 'AD9951 - No Options,14 bit DAC
' frmSplash.AddStatLine " DUT1: AD9951."
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: AD9951"
' Case "00000000": 'AD9952 - Comparator Active, 14 bit DAC
' frmSplash.AddStatLine " DUT1: AD9952."
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: AD9952"
' Case "00010100": 'AD9953 - RAM Active, 14 bit DAC
' frmSplash.AddStatLine " DUT1: AD9953."
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: AD9953"
' Case "00011000": 'AD9954 - All Options, 14 bit DAC
' frmSplash.AddStatLine " DUT1: AD9954."
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: AD9954"
' Case "00001100": 'AD80XXX - Linear Sweep, 14 Bit DAC
' frmSplash.AddStatLine " DUT1: AD80XXX."
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: AD80XXX"
' Case Else:
' frmSplash.AddStatLine " DUT1: Not Installed!!!"
' mdiMain.stbStatusBar.Panels(2).Text = "DUT1: Not Inst."
' End Select
'
' 'Decode the bits for DUT2
' Select Case DUT2_CFR2
' Case "00011010": 'Evaluation Product
' frmSplash.AddStatLine " DUT2: AD9954E." 'Evaluation Product"
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD9954E"
' Case "00000101": 'AD9859 - No Options,10 bit DAC
' frmSplash.AddStatLine " DUT2: AD9859."
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD9859"
' Case "00000100": 'AD9951 - No Options,14 bit DAC
' frmSplash.AddStatLine " DUT2: AD9951."
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD9951"
' Case "00000000": 'AD9952 - Comparator Active, 14 bit DAC
' frmSplash.AddStatLine " DUT2: AD9952."
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD9952"
' Case "00010100": 'AD9953 - RAM Active, 14 bit DAC
' frmSplash.AddStatLine " DUT2: AD9953."
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD9953"
' Case "00011000": 'AD9954 - All Options, 14 bit DAC
' frmSplash.AddStatLine " DUT2: AD9954."
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD9954"
' Case "00001100": 'AD80XXX - Linear Sweep, 14 Bit DAC
' frmSplash.AddStatLine " DUT2: AD80XXX."
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: AD80XXX"
' Case Else:
' frmSplash.AddStatLine " DUT2: Not Installed!!!"
' mdiMain.stbStatusBar.Panels(3).Text = "DUT2: Not Inst."
' End Select
End Select
If EvalBd.DutsInstalled = 0 Then
frmSplash.txtStatus.ForeColor = RGB(255, 0, 0)
End If
'Reset the DUT again to clear out register 4 which is used to detect
'the DUTs
' EvalBd.ResetDUT 0
'Disable DUT Tabs that aren't usable
' Select Case EvalBd.DutsInstalled
' Case 0:
' frmControl.sstChooseDUT.TabEnabled(1) = False
' frmControl.sstChooseDUT.TabEnabled(0) = False
' frmFrequency.sstChooseDUT.TabEnabled(1) = False
' frmFrequency.sstChooseDUT.TabEnabled(0) = False
' frmAmplitude.sstChooseDUT.TabEnabled(1) = False
' frmAmplitude.sstChooseDUT.TabEnabled(0) = False
' frmRegisterMap.sstChooseDUT.TabEnabled(1) = False
' frmRegisterMap.sstChooseDUT.TabEnabled(0) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(3) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(2) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(1) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(0) = False
' Case 1:
' frmControl.sstChooseDUT.TabEnabled(1) = False
' frmControl.sstChooseDUT.TabEnabled(0) = True
' frmFrequency.sstChooseDUT.TabEnabled(1) = False
' frmFrequency.sstChooseDUT.TabEnabled(0) = True
' frmAmplitude.sstChooseDUT.TabEnabled(1) = False
' frmAmplitude.sstChooseDUT.TabEnabled(0) = True
' frmRegisterMap.sstChooseDUT.TabEnabled(1) = False
' frmRegisterMap.sstChooseDUT.TabEnabled(0) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(3) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(2) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(1) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(0) = True
' Case 2:
' frmControl.sstChooseDUT.TabEnabled(0) = False
' frmControl.sstChooseDUT.TabEnabled(1) = True
' frmFrequency.sstChooseDUT.TabEnabled(0) = False
' frmFrequency.sstChooseDUT.TabEnabled(1) = True
' frmAmplitude.sstChooseDUT.TabEnabled(0) = False
' frmAmplitude.sstChooseDUT.TabEnabled(1) = True
' frmRegisterMap.sstChooseDUT.TabEnabled(0) = False
' frmRegisterMap.sstChooseDUT.TabEnabled(1) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(1) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(0) = False
' frmRAMConfig.sstChooseDUT.TabEnabled(3) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(2) = True
' Case 3:
' frmControl.sstChooseDUT.TabEnabled(1) = True
' frmControl.sstChooseDUT.TabEnabled(0) = True
' frmControl.chkLoadBothDUTs.Enabled = True
' frmFrequency.sstChooseDUT.TabEnabled(1) = True
' frmFrequency.sstChooseDUT.TabEnabled(0) = True
' frmFrequency.chkLoadBothDUTs.Enabled = True
' frmAmplitude.sstChooseDUT.TabEnabled(1) = True
' frmAmplitude.sstChooseDUT.TabEnabled(0) = True
' frmAmplitude.chkLoadBothDUTs.Enabled = True
' frmRegisterMap.sstChooseDUT.TabEnabled(1) = True
' frmRegisterMap.sstChooseDUT.TabEnabled(0) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(3) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(2) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(1) = True
' frmRAMConfig.sstChooseDUT.TabEnabled(0) = True
' End Select
Select Case UCase(Command$)
Case "-ADIFULLENGMODE"
SetEngMode 1
Case "-ADIFAMODE"
SetEngMode 2
Case "-DEBUGMODE"
SetEngMode 3
Case Else
SetEngMode 0
End Select
'Finished starting up now do software resets also
HardwareOnlyReset = False
frmSplash.AddStatLine ""
frmSplash.AddStatLine "Resetting the Evaluation Board and Software."
'Reset the evalbd
EvalBd.ResetDUT 0
'******************************************************************************
'Used for internal use only
frmControl.chkLoadBothDUTs.Visible = True
frmFrequency.chkLoadBothDUTs.Visible = True
frmRAMConfig.chkLoadBothDUTs.Visible = True
frmAmplitude.chkLoadBothDUTs.Visible = True
'******************************************************************************
'Show the Control Window
' frmConfigureDUT.Show
'frmDebug.Move 0, 0
'frmDebug.Show
frmControl.Show
frmFrequency.Show
frmDUTSignals.Move mdiMain.Left + mdiMain.Width - frmDUTSignals.Width - (Screen.TwipsPerPixelY * 6), mdiMain.Top + (Screen.TwipsPerPixelY * 25)
frmDUTSignals.Show
'*****************************************
'* Uncomment one of the following lines *
'* to force a DUT Type for the GUI Setup *
'*****************************************
' DUT1_CFR2 = "00011010" 'Evaluation Product
' DUT1_CFR2 = "00011000" 'AD9854
' DUT1_CFR2 = "00010100" 'AD9853
' DUT1_CFR2 = "00000000" 'AD9852
' DUT1_CFR2 = "00000100" 'AD9851
' DUT1_CFR2 = "00000101" 'AD9859
' DUT1_CFR2 = "00001100" 'AD80XXX
' DUT1_CFR2 = ""
' DUT2_CFR2 = "00011010" 'Evaluation Product
' DUT2_CFR2 = "00011000" 'AD9854
' DUT2_CFR2 = "00010100" 'AD9853
' DUT2_CFR2 = "00000000" 'AD9852
' DUT2_CFR2 = "00000100" 'AD9851
' DUT2_CFR2 = "00000101" 'AD9859
' DUT2_CFR2 = "00001100" 'AD80XXX
' DUT2_CFR2 = ""
'****************************************
frmSplash.AddStatLine ""
frmSplash.AddStatLine "Setting up Graphical User Interface for..."
frmSplash.AddStatLine " DUT1: " & GetProductString(DUT1_CFR2) & "."
frmSplash.AddStatLine " DUT2: " & GetProductString(DUT2_CFR2) & "."
SetupGUIForProduct DUT1_CFR2, DUT2_CFR2
'Wait 1 second and process events
Delay 0.5
'Enable the auto unload feature of the splash screen
If IsLoaded("frmSplash") Then
frmSplash.Visible = True
frmSplash.SetFocus
frmSplash.AutoUnloadEnable
End If
'Show that the software is loaded and ready
frmSplash.AddStatLine ""
frmSplash.AddStatLine "Software Loaded and Ready!!!"
End Sub
Public Sub ExitGracefully()
Dim cntr As Integer
'Unload frmLPTSelect first
Unload frmLPTSelect
'Unload each form
For cntr = (Forms.Count - 1) To 0 Step -1
If Forms(cntr).Name <> "mdiMain" Then
Unload Forms(cntr)
End If
Next cntr
'Unload the main form
Unload mdiMain
End
End Sub
'Decodes the RAM Segment Control Word
Public Sub DecodeRSCW(ByVal RSCW As String, BegAddr As Integer, FnlAddr As Integer, AddrRR As Long, ModeCtrl As Integer, NoDwell As Integer)
Dim MSWord As String
Dim LSWord As String
Dim BinWord As String
'Extract the Beginning Address
LSWord = Mid(RSCW, 25, 6)
MSWord = Right(RSCW, 4)
BegAddr = CStr(cbaseBinS2Dec(MSWord & LSWord))
'Extract the Final Address
MSWord = Mid(RSCW, 31, 2)
LSWord = Mid(RSCW, 17, 8)
FnlAddr = CStr(cbaseBinS2Dec(MSWord & LSWord))
'Extract the Ramp Rate
LSWord = Left(RSCW, 16)
MSWord = Right(LSWord, 8)
LSWord = Left(LSWord, 8)
AddrRR = CStr(cbaseBinS2Dec(MSWord & LSWord))
'Extract the Mode control
ModeCtrl = cbaseBinS2Dec(Mid(RSCW, 33, 3))
'Extract the NoDwell bit
NoDwell = cbaseBinS2Dec(Mid(RSCW, 36, 1))
End Sub
'Inputs the values to be encoded and outputs a proper RSCW
Public Function EncodeRSCW(BegAddr As Integer, FnlAddr As Integer, AddrRR As Long, ModeCtrl As Integer, NoDwell As Integer) As String
EncodeRSCW = Right(cbaseDec2Bin(AddrRR, 16), 8) & _
Left(cbaseDec2Bin(AddrRR, 16), 8) & _
Right(cbaseDec2Bin(FnlAddr, 10), 8) & _
Right(cbaseDec2Bin(BegAddr, 10), 6) & _
Left(cbaseDec2Bin(FnlAddr, 10), 2) & _
cbaseDec2Bin(ModeCtrl, 3) & cbaseDec2Bin(NoDwell, 1) & _
Left(cbaseDec2Bin(BegAddr, 10), 4)
End Function
Public Sub LoadRAMFile(ByVal DUTNum As Integer, ByVal RamFile As String)
Dim FileHandle As Integer
Dim dummystr As String
Dim DummyDbl As Double
Dim cntr As Integer
Dim cntr1 As Integer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -