⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modmain.bas

📁 AD9954源码
💻 BAS
📖 第 1 页 / 共 5 页
字号:
'                    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 + -