diff --git a/flight/modules/CameraControl/cameracontrol.c b/flight/modules/CameraControl/cameracontrol.c
index 41ff0d958..3d05893a6 100644
--- a/flight/modules/CameraControl/cameracontrol.c
+++ b/flight/modules/CameraControl/cameracontrol.c
@@ -137,6 +137,7 @@ static void CameraControlTask()
{
bool trigger = false;
PositionStateData pos;
+ uint32_t timeSinceLastShot = PIOS_DELAY_DiffuS(ccd->lastTriggerTimeRaw);
if (checkActivation()) {
if (ccd->manualInput != ccd->lastManualInput && ccd->manualInput != CAMERASTATUS_Idle) {
@@ -145,10 +146,12 @@ static void CameraControlTask()
ccd->outputStatus = ccd->manualInput;
ccd->activity.Reason = CAMERACONTROLACTIVITY_REASON_MANUAL;
} else {
- if (ccd->autoTriggerEnabled) {
+ // MinimumTimeInterval sets a hard limit on time between two consecutive shots, i.e. the minimum time between shots the camera can achieve
+ if (ccd->autoTriggerEnabled &&
+ timeSinceLastShot > (ccd->settings.MinimumTimeInterval * 1000 * 1000)) {
// check trigger conditions
if (ccd->settings.TimeInterval > 0) {
- if (PIOS_DELAY_DiffuS(ccd->lastTriggerTimeRaw) > ccd->settings.TimeInterval * (1000 * 1000)) {
+ if (timeSinceLastShot > ccd->settings.TimeInterval * (1000 * 1000)) {
trigger = true;
ccd->activity.Reason = CAMERACONTROLACTIVITY_REASON_AUTOTIME;
}
diff --git a/shared/uavobjectdefinition/cameracontrolsettings.xml b/shared/uavobjectdefinition/cameracontrolsettings.xml
index 51ef4ccd0..a94047271 100644
--- a/shared/uavobjectdefinition/cameracontrolsettings.xml
+++ b/shared/uavobjectdefinition/cameracontrolsettings.xml
@@ -7,8 +7,9 @@
-
+
+