camera_common.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stddef.h>
  4. #include <stdbool.h>
  5. #include "esp_err.h"
  6. #include "esp_intr_alloc.h"
  7. #include "freertos/FreeRTOS.h"
  8. #include "freertos/semphr.h"
  9. #include "freertos/task.h"
  10. #include "esp_camera.h"
  11. #include "sensor.h"
  12. #include "esp_system.h"
  13. #if ESP_IDF_VERSION_MAJOR >= 4 // IDF 4+
  14. #if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4
  15. #include "esp32/rom/lldesc.h"
  16. #else
  17. #error Target CONFIG_IDF_TARGET is not supported
  18. #endif
  19. #else // ESP32 Before IDF 4.0
  20. #include "rom/lldesc.h"
  21. #endif
  22. typedef union {
  23. struct {
  24. uint8_t sample2;
  25. uint8_t unused2;
  26. uint8_t sample1;
  27. uint8_t unused1;
  28. };
  29. uint32_t val;
  30. } dma_elem_t;
  31. typedef enum {
  32. /* camera sends byte sequence: s1, s2, s3, s4, ...
  33. * fifo receives: 00 s1 00 s2, 00 s2 00 s3, 00 s3 00 s4, ...
  34. */
  35. SM_0A0B_0B0C = 0,
  36. /* camera sends byte sequence: s1, s2, s3, s4, ...
  37. * fifo receives: 00 s1 00 s2, 00 s3 00 s4, ...
  38. */
  39. SM_0A0B_0C0D = 1,
  40. /* camera sends byte sequence: s1, s2, s3, s4, ...
  41. * fifo receives: 00 s1 00 00, 00 s2 00 00, 00 s3 00 00, ...
  42. */
  43. SM_0A00_0B00 = 3,
  44. } i2s_sampling_mode_t;