int arducam(sensor_model_t model) { myCAM.sensor_model = model; switch(myCAM.sensor_model) { case smOV7660: case smOV7670: case smOV7675: case smOV7725: myCAM.sensor_addr = 0x21; break; case smMT9D111: myCAM.sensor_addr = 0x5d; break; case smOV3640: case smOV5642: myCAM.sensor_addr = 0x3c; break; case smOV2640: case smOV9655: myCAM.sensor_addr = 0x30; break; case smMT9M112: myCAM.sensor_addr = 0x5d; break; default: myCAM.sensor_addr = 0x21; break; } if (!arducam_spi_init()) { printf("ERROR: SPI init failed\n"); return 0; } // initialize i2c: if (!arducam_i2c_init(myCAM.sensor_addr)) { printf("ERROR: I2C init failed\n"); return 0; } return 1; }
int arducam(sensor_model_t model,int SPI_CS1, int SPI_CS2, int SPI_CS3, int SPI_CS4) { myCAM.sensor_model = model; switch(myCAM.sensor_model) { case smOV7660: case smOV7670: case smOV7675: case smOV7725: myCAM.sensor_addr = 0x21; break; case smMT9D111: myCAM.sensor_addr = 0x5d; break; case smOV3640: case smOV5642: myCAM.sensor_addr = 0x3c; break; case smOV2640: case smOV9655: myCAM.sensor_addr = 0x30; break; case smMT9M112: myCAM.sensor_addr = 0x5d; break; default: myCAM.sensor_addr = 0x21; break; } if(SPI_CS1>=0) { if (!arducam_spi_init(SPI_CS1)) { printf("ERROR: SPI1 init failed\n"); //return 0; } } if(SPI_CS2>=0) { if (!arducam_spi_init(SPI_CS2)) { printf("ERROR: SPI2 init failed\n"); //return 0; } } if(SPI_CS3>=0) { if (!arducam_spi_init(SPI_CS3)) { printf("ERROR: SPI3 init failed\n"); //return 0; } } if(SPI_CS4>=0) { if (!arducam_spi_init(SPI_CS4)) { printf("ERROR: SPI4 init failed\n"); //return 0; } } // initialize i2c: if (!arducam_i2c_init(myCAM.sensor_addr)) { printf("ERROR: I2C init failed\n"); //return 0; } return 1; }