B&K 4070A User Manual
Page 68

BK Precision 4070A User Manual Rev.2.2
63
' ------------------------------- Main Loop -------------------------------- 
' This loop calculates each point of the arbitrary waveform. 
' It then calls one of several subroutines (depending on what format you 
' would like the data in) to send the data to the 4070A 
 
 
 NUMPOINTS = 80 ' Total number of points generated 
 
 Phase# = 0 ' Reset sinewave phase accumulator to 0 
 
 PhaseInc# = 2 * 3.1415926# / NUMPOINTS ' Phase goes 0 to 2*Pi 
 
' This loop generates the points and sends them to the 4070A 
 
 FOR PointNumber = 1 TO NUMPOINTS 
 
' Note: Here we call a function to generate a new point value. Basic returns 
' a value from SIN() which ranges from -1.0 to +1.0. You may insert 
' your own function here, but be sure that the returned value ranges 
' from -1.0 to +1.0 since the subroutines below expect "PointVal" 
' to range from -1.0 to +1.0. 
 
 
 PointVal = SIN(Phase#) 
 
 
' Pick one of the following subroutines depending on desired data format: 
' GOSUB SendFloat ' Send Floating Point, ex: 3.67e-2, -.586, .012e1,... 
 GOSUB SendHex ' Send Hexadecimal, ex: fed7,124,63c8... 
' GOSUB SendInteger ' Send Integer, ex: -2047,185,2047... 
' GOSUB SendBinary ' Send Binary, ie , ,... 
Phase# = Phase# + PhaseInc# ' Advance the phase of our sinusoid
NEXT PointNumber ' Continue loop and generate more points
' All points have now been generated and sent to the 4070A.
' When the 4070A hasn't received any chars over the serial port for a
' 1 second time-out, it assumes that all points have been sent and starts
' generating the waveform.
ArbExit: 
 CLOSE : SYSTEM ' Close the comm port and exit the program.
 
 
