static int set_pixformat(sensor_t *sensor, pixformat_t pixformat) { int ret=0; // Read register COM7 uint8_t reg = SCCB_Read(sensor->slv_addr, COM7); switch (pixformat) { case PIXFORMAT_RGB565: reg = COM7_SET_FMT(reg, COM7_FMT_RGB); break; case PIXFORMAT_YUV422: case PIXFORMAT_GRAYSCALE: reg = COM7_SET_FMT(reg, COM7_FMT_YUV); break; default: return -1; } // Write back register COM7 ret = SCCB_Write(sensor->slv_addr, COM7, reg); // Delay systick_sleep(30); return ret; }
static int set_pixformat(struct sensor_dev *sensor, enum sensor_pixformat pixformat) { // Read register COM7 uint8_t reg = SCCB_Read(sensor->slv_addr, COM7); switch (pixformat) { case PIXFORMAT_RGB565: reg = COM7_SET_FMT(reg, COM7_FMT_RGB); break; case PIXFORMAT_YUV422: case PIXFORMAT_GRAYSCALE: reg = COM7_SET_FMT(reg, COM7_FMT_YUV); break; default: return -1; } // Write back register COM7 return SCCB_Write(sensor->slv_addr, COM7, reg); }