mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Merge pull request #1974 from kwagyeman/kwabena/fix_fsync
ports/mimxrt: Add support for fsync pin to snapshot.
This commit is contained in:
commit
a5c52bb75b
@ -234,7 +234,7 @@
|
|||||||
|
|
||||||
#define DCMI_RESET_PIN (&omv_pin_DCMI_RESET)
|
#define DCMI_RESET_PIN (&omv_pin_DCMI_RESET)
|
||||||
#define DCMI_POWER_PIN (&omv_pin_DCMI_POWER)
|
#define DCMI_POWER_PIN (&omv_pin_DCMI_POWER)
|
||||||
//#define DCMI_FSYNC_PIN (&omv_pin_DCMI_FSYNC)
|
#define DCMI_FSYNC_PIN (&omv_pin_DCMI_FSYNC)
|
||||||
|
|
||||||
#define DCMI_D0_PIN (&omv_pin_DCMI_D0)
|
#define DCMI_D0_PIN (&omv_pin_DCMI_D0)
|
||||||
#define DCMI_D1_PIN (&omv_pin_DCMI_D1)
|
#define DCMI_D1_PIN (&omv_pin_DCMI_D1)
|
||||||
|
|||||||
@ -14,8 +14,8 @@ OMV_GPIO_DEFINE(LPSPI3_SSEL, AD_B0_03, LPSPI3, 0)
|
|||||||
OMV_GPIO_DEFINE(LPSPI3_GPIO, AD_B0_03, GPIO, 0)
|
OMV_GPIO_DEFINE(LPSPI3_GPIO, AD_B0_03, GPIO, 0)
|
||||||
|
|
||||||
OMV_GPIO_DEFINE(LPSPI4_SCLK, B0_03, LPSPI4, 0)
|
OMV_GPIO_DEFINE(LPSPI4_SCLK, B0_03, LPSPI4, 0)
|
||||||
OMV_GPIO_DEFINE(LPSPI4_MISO, B0_02, LPSPI4, 0)
|
OMV_GPIO_DEFINE(LPSPI4_MISO, B0_01, LPSPI4, 0)
|
||||||
OMV_GPIO_DEFINE(LPSPI4_MOSI, B0_01, LPSPI4, 0)
|
OMV_GPIO_DEFINE(LPSPI4_MOSI, B0_02, LPSPI4, 0)
|
||||||
OMV_GPIO_DEFINE(LPSPI4_SSEL, B0_00, LPSPI4, 0)
|
OMV_GPIO_DEFINE(LPSPI4_SSEL, B0_00, LPSPI4, 0)
|
||||||
OMV_GPIO_DEFINE(LPSPI4_GPIO, B0_00, GPIO, 0)
|
OMV_GPIO_DEFINE(LPSPI4_GPIO, B0_00, GPIO, 0)
|
||||||
|
|
||||||
@ -37,3 +37,4 @@ OMV_GPIO_DEFINE(DCMI_VSYNC, B1_13, CSI, 0)
|
|||||||
OMV_GPIO_DEFINE(DCMI_PXCLK, B1_12, CSI, 0)
|
OMV_GPIO_DEFINE(DCMI_PXCLK, B1_12, CSI, 0)
|
||||||
OMV_GPIO_DEFINE(DCMI_RESET, B1_01, GPIO, 0)
|
OMV_GPIO_DEFINE(DCMI_RESET, B1_01, GPIO, 0)
|
||||||
OMV_GPIO_DEFINE(DCMI_POWER, B1_02, GPIO, 0)
|
OMV_GPIO_DEFINE(DCMI_POWER, B1_02, GPIO, 0)
|
||||||
|
OMV_GPIO_DEFINE(DCMI_FSYNC, B0_01, GPIO, 0)
|
||||||
|
|||||||
@ -325,16 +325,37 @@ int sensor_snapshot(sensor_t *sensor, image_t *image, uint32_t flags) {
|
|||||||
CSI_REG_CR18(CSI) |= CSI_CR18_CSI_ENABLE_MASK;
|
CSI_REG_CR18(CSI) |= CSI_CR18_CSI_ENABLE_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Let the camera know we want to trigger it now.
|
||||||
|
#if defined(DCMI_FSYNC_PIN)
|
||||||
|
if (sensor->hw_flags.fsync) {
|
||||||
|
omv_gpio_write(DCMI_FSYNC_PIN, 1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
vbuffer_t *buffer = framebuffer_get_head(FB_NO_FLAGS);
|
vbuffer_t *buffer = framebuffer_get_head(FB_NO_FLAGS);
|
||||||
// Wait for the DMA to finish the transfer.
|
// Wait for the DMA to finish the transfer.
|
||||||
for (mp_uint_t ticks = mp_hal_ticks_ms(); buffer == NULL;) {
|
for (mp_uint_t ticks = mp_hal_ticks_ms(); buffer == NULL;) {
|
||||||
buffer = framebuffer_get_head(FB_NO_FLAGS);
|
buffer = framebuffer_get_head(FB_NO_FLAGS);
|
||||||
if ((mp_hal_ticks_ms() - ticks) > 3000) {
|
if ((mp_hal_ticks_ms() - ticks) > 3000) {
|
||||||
sensor_abort();
|
sensor_abort();
|
||||||
|
|
||||||
|
#if defined(DCMI_FSYNC_PIN)
|
||||||
|
if (sensor->hw_flags.fsync) {
|
||||||
|
omv_gpio_write(DCMI_FSYNC_PIN, 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return SENSOR_ERROR_CAPTURE_TIMEOUT;
|
return SENSOR_ERROR_CAPTURE_TIMEOUT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We're done receiving data.
|
||||||
|
#if defined(DCMI_FSYNC_PIN)
|
||||||
|
if (sensor->hw_flags.fsync) {
|
||||||
|
omv_gpio_write(DCMI_FSYNC_PIN, 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!sensor->transpose) {
|
if (!sensor->transpose) {
|
||||||
MAIN_FB()->w = w;
|
MAIN_FB()->w = w;
|
||||||
MAIN_FB()->h = h;
|
MAIN_FB()->h = h;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user