void Camera::init() { xprintf("starting cam init\n"); ledo.init(true); reset.init(true); power.init(true); reset.setPins(1); power.setPins(0); xprintf("Init GPIOs..."); dcmi.InitGPIO(); xprintf("Done!\n"); xprintf("Init DCMI..."); dcmi.InitDCMI(); xprintf("Done!\n"); xprintf("Init I2C..."); delayx(1000); sccb.I2CInit(); xprintf("Done!\n"); xprintf("Init OV7670..."); delayx(1000); InitOV7670(); xprintf("Done!\n"); xprintf("Enable DCMI..."); delayx(1000); dcmi.EnableDCMI(); xprintf("Done with cam init!\n"); }
uint8_t Sccb::ov7670_set(uint8_t reg, uint8_t data) { delayx(1000); I2C_start(I2C1, 0x42, I2C_Direction_Transmitter); delayx(1000); I2C_write(I2C1, reg); delayx(1000); I2C_write(I2C1, data); delayx(1000); I2C_stop(I2C1); delayx(1000); return 0; }
uint8_t ov7670_get(uint8_t reg) { uint8_t data = 0; I2C_start(I2C2, 0x42, I2C_Direction_Transmitter); I2C_write(I2C2, reg); I2C_stop(I2C2); delayx(1000); I2C_start(I2C2, 0x43, I2C_Direction_Receiver); data = I2C_read_nack(I2C2); I2C_stop(I2C2); delayx(1000); return data; }
void Motor::spinUpTo(int _currentSpeed,int _finalVal) { for(int i=_currentSpeed; i<_finalVal; i++) { MotorPWM.write(i); delayx(1); } if(ramp)ramp = false; }
uint8_t ov7670_set(uint8_t reg, uint8_t data) { I2C_start(I2C2, 0x42, I2C_Direction_Transmitter); I2C_write(I2C2, reg); I2C_write(I2C2, data); I2C_stop(I2C2); delayx(1000); return 0; }