10-25-2007 01:16 PM
10-25-2007 02:10 PM
10-25-2007 02:36 PM
10-25-2007 03:15 PM
10-25-2007 03:25 PM
10-26-2007 10:41 AM
Hi Centerbolt
I already created a task to output a digital 1D array or waveform, but the pulse do not appeared in the terminal. Could you see some problem in the attached code bellow?
Public Function GFUNC_booCreateDOPulse() As Boolean
Dim LlngTaskHandle As Long
Dim LbytSamples(0 to 80 * 3 - 1) As Byte
Dim LlngSamplesCounter As Long
Dim LlngSignalLevel As Long
Dim LlngDummy As Long
On Error GoTo GFUNC_booCreateDOPulseErr
GFUNC_booCreateDOPulse = False
' Create the sample data (80 samples in low level + 80 samples in high level + 80 samples in low level)
LlngSignalLevel = 0
For LlngSamplesCounter = 0 To (80 * 3) - 1
' Invert the polarity each 80 samples
If (LlngSamplesCounter Mod 80 = 0) Then
If (LlngSignalLevel = 0) Then
LlngSignalLevel = 1
Else
LlngSignalLevel = 0
End If
End If
LbytSamples(LlngSamplesCounter) = LlngSignalLevel
Next LlngSamplesCounter
' Create a task
If (DAQmxCreateTask("", LlngTaskHandle) >= 0) Then
' Create the digital output channel
If (DAQmxCreateDOChan(LlngTaskHandle, "/Dev1/P0.3", "", DAQmx_Val_ChanForAllLines) >= 0) Then
' Create the timming: sample rate 1000S/s, # Samples = 3 * 80
If (DAQmxCfgSampClkTiming(LlngTaskHandle, "20MHzTimebase", 1000, DAQmx_Val_Rising, DAQmx_Val_AcquisitionType_FiniteSamps, 80 * 3)>= 0) Then
' Write the SAMPLES
If (DAQmxWriteDigitalLines(LlngTaskHandle, LlngPulseWidth * 3, True, 3, DAQmx_Val_GroupByScanNumber, LbytSamples(0), LlngDummy, ByVal 0) >= 0) Then
If ( DAQmxWaitUntilTaskDone(LlngTaskHandle, 3) >= 0) Then
If (DAQmxClearTask(LlngTaskHandle) >= 0) Then
' End of pulse generation
10-26-2007 12:52 PM
10-26-2007 01:46 PM
DAQmxCfgSampClkTiming(LlngTaskHandle, "20MHzTimebase", ...
10-26-2007 07:23 PM - edited 10-26-2007 07:23 PM
Message Edited by Brad K on 10-26-2007 07:29 PM
10-26-2007 07:43 PM