diff options
-rw-r--r-- | device-functions.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/device-functions.c b/device-functions.c index 5be0be3..838dd7a 100644 --- a/device-functions.c +++ b/device-functions.c @@ -2021,7 +2021,10 @@ int Set_Cal_Nom(int channel,int calibration_point_number,int parameter, float *n case pwl_delay_values: nominal_val=globals.Flash.delay_pwl_time[channel][range][polarity][entry]; nominal_wordout=globals.Flash.delay_pwl_Vc_norm4095[channel][range][polarity][entry]; - reset_state=disable_errors=1; + disable_errors=1; + if (!globals.Flash.volt_ctrl_delay[channel]) { + reset_state=1; + } break; case pwl_period_values: nominal_val=globals.Flash.period_pwl_time[channel][range][polarity][entry]; @@ -2050,8 +2053,9 @@ 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 ampl/os parameters, use existing timing and output state, and use error-checking */ + /* For 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(); @@ -2102,9 +2106,11 @@ int Set_Cal_Nom(int channel,int calibration_point_number,int parameter, float *n globals.Flash.propagation_delay[channel]=0.0; globals.Flash.delay_shrink[channel]=0.0; - globals.ChannelState[channel].test_delay_mode=YES; - - status=Set_frequency(0,0,0,globals.Flash.ChanKey_frequency?channel:0,other_setting); + if (reset_state) { + // skipped for voltage-controlled delay (2CHPP) + globals.ChannelState[channel].test_delay_mode=YES; + status=Set_frequency(0,0,0,globals.Flash.ChanKey_frequency?channel:0,other_setting); + } if (!status) { status=Set_Delay(0,nominal_wordout,range,channel,nominal_val); } |