summaryrefslogtreecommitdiff
path: root/device-functions.c
diff options
context:
space:
mode:
Diffstat (limited to 'device-functions.c')
-rw-r--r--device-functions.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/device-functions.c b/device-functions.c
index ee62cf1..69d94fa 100644
--- a/device-functions.c
+++ b/device-functions.c
@@ -757,7 +757,7 @@ int Set_Delay(int check_possible_only,int word_override,int range_override,int c
/* won't work for all values if apparent fixed delay is less than minimum variable delay */
min_one_shot_delay = globals.Flash.delay_pwl_time[channel][0][0][0];
if (globals.Flash.delay_shrink[channel] < min_one_shot_delay) {
- return HardwareError;
+ return DelayRangeError;
}
/* If we need the advance mode for all positive values of delay (for the external trigger
@@ -775,6 +775,13 @@ int Set_Delay(int check_possible_only,int word_override,int range_override,int c
SYNC pulse.
*/
+ if ( globals.Flash.force_monotonic_ext_trig_delay[channel] && // specials mostly
+ (globals.Flash.delay_shrink[channel] > 0.0) && // ignore if delay shrink cal not set
+ (globals.Flash.propagation_delay[channel] > 0.0) &&
+ ((globals.Flash.delay_shrink[channel] - globals.Flash.propagation_delay[channel]) < min_one_shot_delay)) {
+ return ExternalModeDelayError;
+ }
+
/* tweak depending on polarity */
adj_setting = set_delay;