Camera driver.
This module provides Generic functions to configure and control CAM input/output and interrupt behavior.
Usage & Initialization.
This is an example show how to instantiate CAM with cam_instance_t.
This implementation depends on I2C Driver.
#define I2C_CTRL_HZ SYSTEM_CLINT_HZ
#define I2C_CTRL (i2c_hwreg_t *)SYSTEM_I2C_0_IO_CTRL
#define I2C_FREQ 100000
.hwreg = I2C_CTRL,
.samplingClockDivider = 3,
.timeout = I2C_CTRL_HZ/1000,
.tsuDat = I2C_CTRL_HZ/(I2C_FREQ*5),
.tLow = I2C_CTRL_HZ/(I2C_FREQ*2),
.tHigh = I2C_CTRL_HZ/(I2C_FREQ*2),
.tBuf = I2C_CTRL_HZ/(I2C_FREQ),
},
};
CAM driver API definitions.
#define CAM_CTRL
I2C Address for the currently selected cam (IMX708).
#define CAM_DRIVER
Driver Interface Table for the currently selected cam (IMX708).
struct cam_instance cam_instance_t
Forward declaration of CAM instance.
cam_status_t(* startStreaming)(cam_instance_t *cam)
Start Camera Streaming function pointer.
cam_status_t(* initCam)(cam_instance_t *cam)
Initialize Camera function pointer.
cam_status_t(* applyConfig)(cam_instance_t *cam)
Apply i2c config.
cam_status_t(* enableErrorInterrupt)(cam_instance_t *cam)
Enable error interrupt function pointer.
const cam_api_t * drv
Pointer to CAM API structure */.
I2C instance. Holds the software registers and hardware pointer.
- See also
- Supported Devices - Learn about the supported Camera list.