beautypg.com

Measurement Computing Personal488 rev.3.0 For DOS & Windows 3.Xi User Manual

Page 189

background image

9G. Pascal

II. SOFTWARE GUIDES - 9. Driver488/SUB

II-174

Personal488 User’s Manual, Rev. 3.0

Writeln(‘listener

: ‘, substat^.listener);

Write(‘triggered

: ‘, substat^.triggered);

Write(‘cleared

: ‘, substat^.cleared);

Write(‘transfer

: ‘, substat^.transfer);

Writeln(‘byteIn

: ‘, substat^.byteIn);

Writeln(‘byteOut

: ‘, substat^.byteOut);

end;

begin

{ Establish communications with Driver488/SUB }
ieee: = ioOpenName (‘IEEE’);
if ieee = -1 then begin

Writeln(‘Cannot initialize IEEE system’);
halt;

end;

{ Disable the automatic onscreen error display }
if ioError (ieee,OFF) = -1 then begin end;

{ Open the ADC488 device handle or create if necessary }
adc: = ioOpenName (‘ADC’);
if adc = -1 then begin

rv: = ioGetError (ieee,response);
dev: = ioOpenName (‘DEVIEEE’);
adc: = ioMakeDevice (dev,’ADC’);
rv: = ioBusAddress (adc,14,-1);

end;

{ Read the Driver488/SUB revision number }
rv: = ioHello (ieee,response);
Writeln (response);

{ Set up interrupt pointers }
rv: = ioOnEvent (ieee,@isr,nilptr);

{ Enable Driver488/SUB interrupt on Error or Service Request }
rv: = ioArm (ieee,acSRQ);

{ Display the Driver488/SUB system status }
rv: = ioStatus (ieee,substat);
showstat (@substat);

{ Put the ADC488 into remote mode }
rv: = ioRemote (adc);

{ Clear the ADC488 }
rv: = ioClear (adc);

{ Enable ADC488 SRQ on command errors }
lrv: = ioOutput (adc,’M8X’);

{ Send an invalid command to the ADC488 }
Writeln (‘Sending invalid ADC command’);
lrv: = ioOutput (adc,’V13X’);

{ Set up the ADC488:

Differential inputs (A0)
Scan group channel 1 (C1)
Compensated ASCII floating-point output format (G0)
Channel 1 range to 3 (+/-10V)
One-shot trigger on talk (T6)

}
lrv: = ioOutput (adc,’A0C1G0R3T6X’);

{ Wait for the ready bit of the ADC488 to be asserted }
while not bitset (ioSPoll (adc),32) do begin end;