4-30 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3
Programming Examples for C++ Users
Pulsed Sweep Measurement
ret = agb1500_setAdc(vi, agb1500_HSPEED_ADC, agb1500_INTEG_MANUAL, smpl, agb1500_F
LAG_OFF); /* 36 */
ret = agb1500_setAdcType(vi, agb1500_CH_ALL, agb1500_HSPEED_ADC);
ret = agb1500_resetTimestamp(vi);
ret = agb1500_force(vi, emitter, agb1500_VF_MODE, 0, 0, 0.1, 0);
for (j = 0; j < nop2; j++){ /* 41 */
dib[j] = (j + 1) * ib / nop2;
ret = agb1500_force(vi, base, agb1500_IF_MODE, 0, dib[j], vbcomp, 0);
ret = agb1500_setPiv(vi, collector, agb1500_SWP_VF_SGLLIN, 0, base, 0, vc, nop1,
hold, width, period, iccomp);
check_err (vi, ret);
ret = agb1500_sweepPiv(vi, collector, agb1500_IM_MODE, 0, &rep, &sc[i], &md[i],
&st[i], &tm[i]);
check_err (vi, ret);
if ( rep = nop1 ) {
i = i + nop1;
}
else {
printf ("%d measurement steps were returned.\nIt must be %d steps.\n", rep,
nop1);
ret = agb1500_zeroOutput(vi, agb1500_CH_ALL);
ret = agb1500_setSwitch(vi, agb1500_CH_ALL, 0);
check_err (vi, ret);
exit (ret);
}
} /* 60 */
ret = agb1500_zeroOutput(vi, agb1500_CH_ALL); /* 62 */
check_err (vi, ret);
Line Description
36 to 37 Sets the high speed ADC, and selects it for all measurement channels.
38 Resets time stamp.
39 Applies voltage to device.
41 to 60 Applies dc current and pulsed sweep voltage, and performs pulsed sweep
measurement. After that, disables all ports and stops the program execution if the
number of returned data is not equal to the nop1 value.
62 Sets the specified port to the zero output state.
34, 45, 48, 57,
and 63
Calls the check_err subprogram (shown in Table 4-1) to check if an error status is
returned for the previous line.