4-50 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3
Programming Examples for C++ Users
CV Sweep Measurement
Table 4-18 CV Sweep Measurement Example
void perform_meas (ViSession vi, ViStatus ret) /* 1 */
{
ViInt32 drain= 1; /* SMU1 */
ViInt32 gate /* CMUH */
ViInt32 source= 4; /* SMU4 */
ViInt32 substrate /* CMUL */
ViReal64 freq= 1000000;
ViReal64 ref_cp= 0;
ViReal64 ref_g= 0;
ViReal64 osc_level= 0.03;
ViReal64 vg1= -5;
ViReal64 vg2= 5;
ViReal64 hold= 0;
ViReal64 delay= 0;
ViReal64 s_delay= 0;
ViReal64 range= 0;
ViInt32 nop1= 21;
ViInt32 nop2= 1;
ViInt32 rep= nop1;
ViReal64 sc[21];
ViReal64 md[42];
ViInt32 st[42];
ViReal64 mon[42];
ViInt32 st_mon[42];
ViReal64 mt[21];
ViInt32 i= 0;
ViInt32 j= 0;
ViInt32 n= 0;
ViChar f_name[]= "C:\\Agilent\\ex\\data9.txt"; /* 29 */
ViChar head1[]= "Vg (V), Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V),
Dc_st, Time (s)";
ViChar msg1[]= "Saving data...";
ViChar msg2[]= "Data save completed.";
ViChar c= ’\n’;
ret = agb1500_setSwitch(vi, drain, 1); /* 35 */
ret = agb1500_setSwitch(vi, source, 1);
ret = agb1500_force(vi, source, agb1500_VF_MODE, 0, 0, 0.1, 0);
ret = agb1500_force(vi, drain, agb1500_VF_MODE, 0, 0, 0.1, 0);
ret = agb1500_scuuPath(vi, agb1500_CH_CMU, agb1500_SCUU_CMU); /* 39 */
ret = agb1500_setSwitch(vi, agb1500_CH_CMU, agb1500_FLAG_ON);
ret = agb1500_setCmuInteg(vi, agb1500_INTEG_AUTO, 2);
Line Description
1 Beginning of the perform_meas subprogram.
3 to 33 Declares variables, and defines the value.
35 to 38 Enables source channels connected to the drain and source terminals, and applies 0 V.
39 to 41 Sets the SCUU connection path, enables the MFCMU, and sets the integration time.