5-30 Agilent 4155C/4156C VXIplug&play Driver User’s Guide, Edition 4
Programming Examples for C++ Users
Multi-Channel Pulsed Sweep Measurements
ret = hp4156b_setSwitch(vi, emitter, 1); /* 35 */
ret = hp4156b_setSwitch(vi, base, 1);
ret = hp4156b_setSwitch(vi, collector, 1);
ret = hp4156b_setFilter(vi, emitter, hp4156b_FLAG_OFF);
ret = hp4156b_setInteg(vi, hp4156b_INTEG_TBL_SHORT, hp4156b_INTEG_TIME_MIN, 2);
check_err (vi, ret); /* 40 */
ret = hp4156b_cmd(vi, "PT 0,0.005,0.01,0,1"); /* 42 */
ret = hp4156b_cmd(vi, "PWV 1,1,0,0,0,-0.8,11,0.1,0");
ret = hp4156b_force(vi, base, hp4156b_VF_MODE, 0, vb, ibcomp, 0); /* 44 */
ret = hp4156b_force(vi, collector, hp4156b_VF_MODE, 0, vc, iccomp, 0);
ret = hp4156b_startMeasure(vi, hp4156b_MM_PSWEEP, mch, mode, range,
hp4156b_FLAG_ON);
check_err (vi, ret); /* 48 */
ret = hp4156b_zeroOutput(vi, hp4156b_CH_ALL); /* 50 */
ret = hp4156b_setSwitch(vi, hp4156b_CH_ALL, 0);
check_err (vi, ret); /* 52 */
ViInt32 i; /* 54 */
for (i = 0; i < nop ; i++){
ret = hp4156b_readData(vi, &eod, &type, &mdata, &stat, &ch);
md1[i] = mdata; /* Data measured by mch[0] = collector */
ret = hp4156b_readData(vi, &eod, &type, &mdata, &stat, &ch);
md2[i] = mdata; /* Data measured by mch[1] = base */
ret = hp4156b_readData(vi, &eod, &type, &mdata, &stat, &ch);
sc[i] = mdata; /* Pulsed sweep source output data */
} /* 62 */
Line Description
35 to 37 Enables measurement channels.
38 Sets the filter off for the SMU used for the pulse source.
39 Sets the A/D converter integration time.
42 to 43 Sets the pulsed sweep source timing parameters and voltage output parameters.
44 to 45 Applies voltage to device.
47 Performs multi channel pulsed sweep measurement.
50 Sets the specified port to the zero output state.
51 Disables all ports.
40, 48, and 52 Calls the check_err subprogram (shown in Table 5-1) to check if an error status is
returned for the previous line.
54 to 62 Reads measurement data.