SDK API для шилдов Arducam
Функции API отправляют разные команды шилду Arducam.
1. void InitCAM (void)
Функция InitCAM инициализирует аппаратные параметры системы пользователя, например порт выбора микросхемы SPI (CS) и адрес сенсора как ведомого устройства.
2. void flush_fifo (void)
Функция flush_fifo сбрасывает указатель чтения FIFO в ноль.
3. void start_capture (void)
Функция start_capture отправляет команду захвата. После неё оборудование Arducam дожидается начала нового кадра и сохраняет кадр целиком во встроенный буфер кадра.
4. void clear_fifo_flag (void)
Когда кадр записан во встроенную память, флаг завершения захвата устанавливается автоматически. Функция clear_fifo_flag сбрасывает этот флаг перед следующей командой захвата.
5. void write_reg(uint8_t addr, uint8_t data)
Параметр 1: адрес регистра ArduChip (или код команды)
Параметр 2: данные для записи в регистр
write_reg — базовая функция записи во внутренние регистры ArduChip.
6. uint8_t read_reg(uint8_t addr)
Параметр 1: адрес регистра ArduChip (или код команды)
read_reg — базовая функция чтения значения внутреннего регистра ArduChip.
7. uint32_t read_fifo_length(void)
Возвращаемое значение: длина захваченного изображения (32 бита)
Функция read_fifo_length определяет длину текущего захваченного изображения. Шилд Rev.C эту функцию не поддерживает.
8. void set_fifo_burst(void)
Функция set_fifo_burst переводит чтение памяти в пакетный режим. Вызывайте её перед пакетным чтением памяти. Шилд Rev.C эту функцию не поддерживает.
9. int wrSensorRegs8_8(const struct sensor_reg*)
Параметр 1: массив настроек сенсора
Возвращаемое значение: статус ошибки
Функция wrSensorRegs8_8 записывает массив настроек во внутренние регистры сенсора по интерфейсу I2C; адрес регистра — 8 бит, данные — 8 бит.
10. int wrSensorRegs8_16(const struct sensor_reg*)
Параметр 1: массив настроек сенсора
Возвращаемое значение: статус ошибки
Функция wrSensorRegs8_16 записывает массив настроек во внутренние регистры сенсора по интерфейсу I2C; адрес регистра — 8 бит, данные — 16 бит.
11. int wrSensorRegs16_8(const struct sensor_reg*)
Параметр 1: массив настроек сенсора
Возвращаемое значение: статус ошибки
Функция wrSensorRegs16_8 записывает массив настроек во внутренние регистры сенсора по интерфейсу I2C; адрес регистра — 16 бит, данные — 8 бит.
12. int wrSensorRegs16_16(const struct sensor_reg*)
Параметр 1: массив настроек сенсора
Возвращаемое значение: статус ошибки
Функция wrSensorRegs16_16 записывает массив настроек во внутренние регистры сенсора по интерфейсу I2C; адрес регистра — 16 бит, данные — 16 бит.
13. byte wrSensorReg8_8(int regID, int regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение для записи в регистр
Возвращаемое значение: статус ошибки
Функция wrSensorReg8_8 записывает один внутренний регистр сенсора по интерфейсу I2C; адрес регистра — 8 бит, данные — 8 бит.
14. byte wrSensorReg8_16(int regID, int regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение для записи в регистр
Возвращаемое значение: статус ошибки
Функция wrSensorReg8_16 записывает один внутренний регистр сенсора по интерфейсу I2C; адрес регистра — 8 бит, данные — 16 бит.
15. byte wrSensorReg16_8(int regID, int regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение для записи в регистр
Возвращаемое значение: статус ошибки
Функция wrSensorReg16_8 записывает один внутренний регистр сенсора по интерфейсу I2C; адрес регистра — 16 бит, данные — 8 бит.
16. byte wrSensorReg16_16(int regID, int regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение для записи в регистр
Возвращаемое значение: статус ошибки
Функция wrSensorReg16_16 записывает один внутренний регистр сенсора по интерфейсу I2C; адрес регистра — 16 бит, данные — 16 бит.
17. byte rdSensorReg8_8(uint8_t regID, uint8_t* regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение, прочитанное из регистра
Возвращаемое значение: статус ошибки
Функция rdSensorReg8_8 читает значение одного внутреннего регистра сенсора по интерфейсу I2C; адрес регистра — 8 бит, данные — 8 бит.
18. byte rdSensorReg16_8(uint16_t regID, uint8_t* regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение, прочитанное из регистра
Возвращаемое значение: статус ошибки
Функция rdSensorReg16_8 читает значение одного внутреннего регистра сенсора по интерфейсу I2C; адрес регистра — 16 бит, данные — 8 бит.
19. byte rdSensorReg8_16(uint8_t regID, uint16_t* regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение, прочитанное из регистра
Возвращаемое значение: статус ошибки
Функция rdSensorReg8_16 читает значение одного внутреннего регистра сенсора по интерфейсу I2C; адрес регистра — 8 бит, данные — 16 бит.
20. byte rdSensorReg16_16(uint16_t regID, uint16_t* regDat)
Параметр 1: адрес внутреннего регистра сенсора
Параметр 2: значение, прочитанное из регистра
Возвращаемое значение: статус ошибки
Функция rdSensorReg16_16 читает значение одного внутреннего регистра сенсора по интерфейсу I2C; адрес регистра — 16 бит, данные — 16 бит.
21. void OV2640_set_JPEG_size(uint8_t size)
Параметр 1: код разрешения
Функция OV2640_set_JPEG_size задаёт разрешение для съёмки в формате JPEG на OV2640. Поддерживаемые разрешения:
| Константа | Код | Разрешение |
|---|---|---|
| #define OV2640_160 × 120 | 0 | 160 × 120 |
| #define OV2640_176 × 144 | 1 | 176 × 144 |
| #define OV2640_320 × 240 | 2 | 320 × 240 |
| #define OV2640_352 × 288 | 3 | 352 × 288 |
| #define OV2640_640 × 480 | 4 | 640 × 480 |
| #define OV2640_800 × 600 | 5 | 800 × 600 |
| #define OV2640_1024 × 768 | 6 | 1024 × 768 |
| #define OV2640_1280 × 1024 | 7 | 1280 × 1024 |
| #define OV2640_1600 × 1200 | 8 | 1600 × 1200 |
22. void OV5642_set_JPEG_size(uint8_t size)
Параметр 1: код разрешения
Функция OV5642_set_JPEG_size задаёт разрешение для съёмки в формате JPEG на OV5642. Поддерживаемые разрешения:
| Константа | Код | Разрешение |
|---|---|---|
| #define OV5642_320 × 240 | 0 | 320 × 240 |
| #define OV5642_640 × 480 | 1 | 640 × 480 |
| #define OV5642_1024 × 768 | 2 | 1024 × 768 |
| #define OV5642_1280 × 960 | 3 | 1280 × 960 |
| #define OV5642_1600 × 1200 | 4 | 1600 × 1200 |
| #define OV5642_2048 × 1536 | 5 | 2048 × 1536 |
| #define OV5642_2592 × 1944 | 6 | 2592 × 1944 |
23. void OV5640_set_JPEG_size(uint8_t size)
Параметр 1: код разрешения
Функция OV5640_set_JPEG_size задаёт разрешение для съёмки в формате JPEG на OV5640. Поддерживаемые разрешения:
| Константа | Код | Разрешение |
|---|---|---|
| #define OV5640_320 × 240 | 0 | 320 × 240 |
| #define OV5640_352 × 288 | 1 | 352 × 288 |
| #define OV5640_640 × 480 | 2 | 640 × 480 |
| #define OV5640_800 × 480 | 3 | 800 × 480 |
| #define OV5640_1024 × 768 | 4 | 1024 × 768 |
| #define OV5640_1280 × 960 | 5 | 1280 × 960 |
| #define OV5640_1600 × 1200 | 6 | 1600 × 1200 |
| #define OV5640_2048 × 1536 | 7 | 2048 × 1536 |
| #define OV5640_2592 × 1944 | 8 | 2592 × 1944 |
24. void set_format(byte fmt)
Функция set_format переключает сенсор между режимами RGB и JPEG. После set_format нужно вызвать InitCAM.