summaryrefslogtreecommitdiff
path: root/device-functions.c
diff options
context:
space:
mode:
Diffstat (limited to 'device-functions.c')
-rw-r--r--device-functions.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/device-functions.c b/device-functions.c
index 02162cf..1ed0cac 100644
--- a/device-functions.c
+++ b/device-functions.c
@@ -2182,13 +2182,22 @@ int Set_Cal_Nom(int channel,int calibration_point_number,int parameter, float *n
return OK;
}
- /* For timing parameters, turn off output and error-checking, and change prf/pw,
+ /* For most timing parameters, turn off output and error-checking, and change prf/pw,
except for voltage-controlled delay (2CHPP, for example). For ampl/os parameters,
and voltage-controlled delay, use existing timing and output state, and use error-checking */
if (reset_state) {
Main_Rst();
- Set_Output_State(true_channel,output_off);
+
+ /* keep output on for wide-pw cal, because the effect of multiple 50 Ohm terminations
+ can affect the timing */
+ if ((parameter == pwl_pw_values) &&
+ (nominal_val > 100e-6) &&
+ (globals.Flash.max_pw[channel] > 100e-6)) {
+ Set_Output_State(true_channel,output_on);
+ } else {
+ Set_Output_State(true_channel,output_off);
+ }
Main_update_shift_registers();
bus_setpin(PW_ENABLE, 1); /* enable PW circuit (but output relay still off) */
}