📄 frmmain.frm
字号:
VERSION 5.00
Begin VB.Form frmMain
BorderStyle = 1 'Fixed Single
Caption = "PWM VB Example"
ClientHeight = 4080
ClientLeft = 45
ClientTop = 390
ClientWidth = 7080
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 4080
ScaleWidth = 7080
StartUpPosition = 3 'Windows Default
Begin VB.Frame frmPluseOutCount
Caption = "Pulse Out Count"
Height = 1170
Left = 105
TabIndex = 17
Top = 2745
Width = 5145
Begin VB.TextBox txtPluseCount
Enabled = 0 'False
Height = 315
Index = 1
Left = 4065
TabIndex = 21
Text = "100"
Top = 525
Width = 990
End
Begin VB.TextBox txtPluseCount
Enabled = 0 'False
Height = 315
Index = 0
Left = 1455
TabIndex = 20
Text = "100"
Top = 533
Width = 990
End
Begin VB.CheckBox chkPluseEnable
Caption = "Ch. 1 Enable"
Height = 330
Index = 1
Left = 2820
TabIndex = 19
Top = 525
Width = 1230
End
Begin VB.CheckBox chkPluseEnable
Caption = "Ch. 0 Enable"
Height = 330
Index = 0
Left = 195
TabIndex = 18
Top = 525
Width = 1230
End
End
Begin VB.Frame frmPWMConfiguration
Caption = "PWM Configuration"
Height = 1710
Left = 90
TabIndex = 6
Top = 915
Width = 5145
Begin VB.TextBox txtHiPeriod
Enabled = 0 'False
Height = 315
Index = 1
Left = 3555
TabIndex = 16
Text = "50"
Top = 1260
Width = 915
End
Begin VB.TextBox txtHiPeriod
Enabled = 0 'False
Height = 315
Index = 0
Left = 990
TabIndex = 15
Text = "50"
Top = 1260
Width = 915
End
Begin VB.TextBox txtPeriod
Enabled = 0 'False
Height = 315
Index = 1
Left = 3555
TabIndex = 14
Text = "100"
Top = 825
Width = 915
End
Begin VB.TextBox txtPeriod
Enabled = 0 'False
Height = 315
Index = 0
Left = 990
TabIndex = 13
Text = "100"
Top = 825
Width = 915
End
Begin VB.CheckBox chkPWMEnable
Caption = "Ch.1 PWM Enable"
Height = 330
Index = 1
Left = 2805
TabIndex = 8
Top = 330
Width = 1620
End
Begin VB.CheckBox chkPWMEnable
Caption = "Ch.0 PWM Enable"
Height = 330
Index = 0
Left = 210
TabIndex = 7
Top = 360
Width = 1620
End
Begin VB.Label Label4
Alignment = 1 'Right Justify
Caption = "Hi Period: 0.1mS"
Height = 255
Left = 2730
TabIndex = 12
Top = 1290
Width = 2205
End
Begin VB.Label Label3
Alignment = 1 'Right Justify
Caption = "Hi Period: 0.1mS"
Height = 255
Left = 165
TabIndex = 11
Top = 1290
Width = 2205
End
Begin VB.Label Label2
Alignment = 1 'Right Justify
Caption = "Period: 0.1mS"
Height = 255
Left = 2910
TabIndex = 10
Top = 855
Width = 2025
End
Begin VB.Label Label1
Alignment = 1 'Right Justify
Caption = "Period: 0.1mS"
Height = 255
Left = 345
TabIndex = 9
Top = 855
Width = 2025
End
End
Begin VB.CommandButton cmdExit
Caption = "E&xit"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 5505
TabIndex = 5
Top = 3180
Width = 1425
End
Begin VB.CommandButton cmdRun
Caption = "&Run"
Height = 375
Left = 5670
TabIndex = 4
Top = 1335
Width = 1095
End
Begin VB.CommandButton cmdStop
Caption = "St&op"
Enabled = 0 'False
Height = 375
Left = 5670
TabIndex = 3
Top = 1920
Width = 1095
End
Begin VB.Frame Frame1
Caption = "Device Name:"
Height = 735
Left = 105
TabIndex = 0
Top = 75
Width = 6855
Begin VB.CommandButton btnSelectDevice
Caption = "Select &Device"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 5160
TabIndex = 1
Top = 240
Width = 1575
End
Begin VB.Label labDeviceName
BorderStyle = 1 'Fixed Single
Caption = "Device Name"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 120
TabIndex = 2
Top = 240
Width = 4935
End
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim ptDevFeatures As DEVFEATURES ' structure for device features
Dim ptDevGetFeatures As PT_DeviceGetFeatures
Dim ptCounterPWMSetting As PT_CounterPWMSetting
Public DeviceNum As Long
Public DeviceHandle As Long
Public ErrorNum As Long
Public bRun As Boolean
Private Sub btnSelectDevice_Click()
Dim Description As String
Description = String(80, vbNullChar)
ErrorNum = DRV_SelectDevice(hWnd, False, DeviceNum, Description)
labDeviceName.Caption = Description
End Sub
Private Sub chkPluseEnable_Click(Index As Integer)
If chkPluseEnable(Index).value = Checked Then
txtPluseCount(Index).Enabled = True
Else
txtPluseCount(Index).Enabled = False
End If
End Sub
Private Sub chkPWMEnable_Click(Index As Integer)
If chkPWMEnable(Index).value = Checked Then
txtPeriod(Index).Enabled = True
txtHiPeriod(Index).Enabled = True
Else
txtPeriod(Index).Enabled = False
txtHiPeriod(Index).Enabled = False
End If
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdRun_Click()
ErrorNum = DRV_DeviceOpen(DeviceNum, DeviceHandle)
If CheckError(ErrorNum) <> 0 Then
Exit Sub
End If
ptDevGetFeatures.buffer = DRV_GetAddress(ptDevFeatures)
' ptDevGetFeatures.size = sizeof(ptDevFeatures)
ErrorNum = DRV_DeviceGetFeatures(DeviceHandle, ptDevGetFeatures)
If CheckError(ErrorNum) <> 0 Then
DRV_DeviceClose (DeviceHandle)
Exit Sub
End If
' check number of counter channels
If ptDevFeatures.usMaxTimerChl = 0 Then
MsgBox "No Counter Channel", vbInformation, "Driver Message"
DRV_DeviceClose (DeviceHandle)
Exit Sub
End If
' Enable channel 0 PWM
If chkPWMEnable(0).value = Checked Then
ptCounterPWMSetting.Port = 0
ptCounterPWMSetting.Period = Val(txtPeriod(0).Text)
ptCounterPWMSetting.HiPeriod = Val(txtHiPeriod(0).Text)
ptCounterPWMSetting.GateMode = 0
If chkPluseEnable(0).value = Checked Then
ptCounterPWMSetting.OutCount = Val(txtPluseCount(0).Text)
Else
ptCounterPWMSetting.OutCount = 0
End If
ErrorNum = DRV_CounterPWMSetting(DeviceHandle, ptCounterPWMSetting)
If CheckError(ErrorNum) <> 0 Then
DRV_DeviceClose (DeviceHandle)
Exit Sub
End If
End If
' Enable channel 1 PWM
If chkPWMEnable(1).value = Checked Then
ptCounterPWMSetting.Port = 1
ptCounterPWMSetting.Period = Val(txtPeriod(1).Text)
ptCounterPWMSetting.HiPeriod = Val(txtHiPeriod(1).Text)
ptCounterPWMSetting.GateMode = 0
If chkPluseEnable(1).value = Checked Then
ptCounterPWMSetting.OutCount = Val(txtPluseCount(1).Text)
Else
ptCounterPWMSetting.OutCount = 0
End If
ErrorNum = DRV_CounterPWMSetting(DeviceHandle, ptCounterPWMSetting)
If CheckError(ErrorNum) <> 0 Then
DRV_DeviceClose (DeviceHandle)
Exit Sub
End If
End If
' Start Channel 0 PWM
If chkPWMEnable(0).value = Checked Then
ErrorNum = DRV_CounterPWMEnable(DeviceHandle, 1)
If CheckError(ErrorNum) <> 0 Then
DRV_DeviceClose (DeviceHandle)
Exit Sub
End If
End If
' Start Channel 1 PWM
If chkPWMEnable(1).value = Checked Then
ErrorNum = DRV_CounterPWMEnable(DeviceHandle, 2)
If CheckError(ErrorNum) <> 0 Then
DRV_DeviceClose (DeviceHandle)
Exit Sub
End If
End If
cmdRun.Enabled = False
cmdStop.Enabled = True
cmdExit.Enabled = False
frmPWMConfiguration.Enabled = False
frmPluseOutCount.Enabled = False
bRun = True
End Sub
Private Sub cmdStop_Click()
frmPWMConfiguration.Enabled = True
frmPluseOutCount.Enabled = True
' Stop Channel 0 PWM
If chkPWMEnable(0).value = Checked Then
ErrorNum = DRV_CounterReset(DeviceHandle, 1)
End If
' Stop Channel 1 PWM
If chkPWMEnable(1).value = Checked Then
ErrorNum = DRV_CounterReset(DeviceHandle, 2)
End If
DRV_DeviceClose DeviceHandle
cmdRun.Enabled = True
cmdStop.Enabled = False
cmdExit.Enabled = True
bRun = False
End Sub
Private Sub Form_Load()
bRun = False
Call btnSelectDevice_Click
End Sub
Private Sub Form_Unload(Cancel As Integer)
If bRun = True Then
Call cmdStop_Click
End If
End Sub
Public Function CheckError(ByVal lErrCde As Long) As Boolean
Dim szErrMsg As String * 80
If (lErrCde <> 0) Then
DRV_GetErrorMessage lErrCde, szErrMsg
Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
CheckError = True
Else
CheckError = False
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -