A SERVICE OF

logo

Application Programs 103
1580 CALL IBWRT( SLOTO%, CMD$ ) ‘ CONVERSION TO SEND REAL NUMBERS OVER THE BUS
1590 IF IBSTA% < 0 THEN GOTO 1960 ‘ AS PART OF THE COMMAND STRING.
1600
1610 CMD$ = "LIST:STEP AUTO" ‘ DWELL-PACED LIST
1620 CALL IBWRT( SLOTO%, CMD$ )
1630 IF IBSTA% < 0 THEN GOTO 1960
1640
1650 CMD$ = "INITIATE" ‘ ENABLE TRIGGER TO START LIST
1660 CALL IBWRT( SLOTO%, CMD$ )
1670 IF IBSTA% < 0 THEN GOTO 1960
1680
1690 ‘ BEFORE TRIGGERING THE MODULE, DETERMINE IF IT IS READY BY CHECKING FOR
1700 ' WAITING FOR TRIGGER' (BIT 5 OF THE OPERATION STATUS REGISTER).
1710
1720 ‘ YOU COULD ELIMINATE THIS STEP BY SIMPLY INSERTING A PAUSE IN THE PROGRAM. HOWEVER, BY
1730 ‘ CHECKING THE INSTRUMENT STATUS, YOU CAN AVOID TIMING PROBLEMS. ALSO, ANY OTHER OPERATIONS
1740 ‘ THAT TAKE TIME WILL GIVE THE MODULE A CHANCE TO COMPLETE PROCESSING.
1750
1760 CONDITION.DATA$ = SPACE$(20) ‘ RESERVE SPACE FOR READING IN STRING
1770
1780 WHILE ( (VAL( CONDITION.DATA$ ) AND 32 ) <> 32)‘ CONTINUE TO LOOP UNTIL BIT 5 (VALUE 32) = TRUE
1790 CMD$ = "STATUS:OPERATION:CONDITION?"
1800 CALL IBWRT( SLOTO%, CMD$ )
1810 IF IBSTA% < 0 THEN GOTO 1960
1820 CALL IBRD( SLOTO%, CONDITION.DATA$ )
1830 IF IBSTA% < 0 THEN GOTO 1960
1840 WEND
1850
1860 ‘ SEND TRIGGER COMMAND TO START LIST AND GENERATE THE VOLTAGE RAMP
1870
1880 CMD$ = "TRIGGER:IMMEDIATE" ' THIS IS AN IMMEDIATE TRIGGER, WHICH IS ALWAYS
1890 CALL IBWRT( SLOTO%, CMDS ) ' ACTIVE THEREFORE, IT DOES NOT NEED TO BE
1900 IF IBSTA% < 0 THEN GOTO 1960 ' SELECTED AS A TRIGGER SOURCE.
1910
1920 STOP
1930
1940 ‘ GENERAL ERROR HANDLER
1950
1960 PRINT “GPIB function call error: “
1970 PRINT "IBSTA% =; IBSTA%, "IBERR% =”; IBERR% “lBCNT% = “;IBCNT%
1980
1990 END