diff --git a/src/micropython b/src/micropython index 269b8fa59..6ee9ecd25 160000 --- a/src/micropython +++ b/src/micropython @@ -1 +1 @@ -Subproject commit 269b8fa593227578f632e1929aa309d0dd8f67fb +Subproject commit 6ee9ecd25f431e9a6906217602cf4322abe1b4a7 diff --git a/src/omv/ports/stm32/sensor.c b/src/omv/ports/stm32/sensor.c index 23e523c1c..c5a0a4959 100644 --- a/src/omv/ports/stm32/sensor.c +++ b/src/omv/ports/stm32/sensor.c @@ -346,9 +346,11 @@ int sensor_set_vsync_callback(vsync_cb_t vsync_cb) void DCMI_VsyncExtiCallback() { - __HAL_GPIO_EXTI_CLEAR_FLAG(1 << DCMI_VSYNC_IRQ_LINE); - if (sensor.vsync_callback != NULL) { - sensor.vsync_callback(HAL_GPIO_ReadPin(DCMI_VSYNC_PORT, DCMI_VSYNC_PIN)); + if (__HAL_GPIO_EXTI_GET_FLAG(1 << DCMI_VSYNC_IRQ_LINE)) { + __HAL_GPIO_EXTI_CLEAR_FLAG(1 << DCMI_VSYNC_IRQ_LINE); + if (sensor.vsync_callback != NULL) { + sensor.vsync_callback(HAL_GPIO_ReadPin(DCMI_VSYNC_PORT, DCMI_VSYNC_PIN)); + } } }