SmartWheels self-driving race car. Designed for NXP Cup. Uses FRDM-KL25Z, area-scan camera, and simple image processing to detect and navigate any NXP spec track.
Dependencies: TSI USBDevice mbed-dev
Fork of SmartWheels by
Diff: Hardwares/CamRegBuf.cpp
- Revision:
- 32:5badeff825dc
- Parent:
- 30:ff7f83ad6369
- Child:
- 54:f1f5648dfacf
--- a/Hardwares/CamRegBuf.cpp Thu Mar 02 04:26:33 2017 +0000 +++ b/Hardwares/CamRegBuf.cpp Thu Mar 02 23:56:42 2017 +0000 @@ -51,8 +51,8 @@ m_sccbCtrl.write(m_writeAddr); wait_us(CAM_REG_WRITEWAIT); m_sccbCtrl.write(RegAddr); - m_sccbCtrl.stop(); - wait_us(CAM_REG_WRITEWAIT); + wait_us(CAM_REG_WRITEWAIT); + m_sccbCtrl.stop(); m_sccbCtrl.start(); m_sccbCtrl.write(m_readAddr); @@ -80,6 +80,45 @@ } } +/* +int32_t CamRegBuf::I2CBufferRead(int32_t ucDevAddr, uint8_t *ucBuffer, int32_t ulSize) +{ + m_sccbCtrl.start(); + + m_sccbCtrl.write(ucDevAddr); + if(ulSize == 1){ + ucBuffer[0] = m_sccbCtrl.read(0); + }else{ + for(int i=0;i<ulSize;i++){ + ucBuffer[i] = m_sccbCtrl.read(0); + } + } + + m_sccbCtrl.stop(); + + return 0; +} + +int32_t CamRegBuf::I2CBufferWrite(int32_t ucDevAddr, uint8_t *ucBuffer, int32_t ulSize) +{ + m_sccbCtrl.start(); + + // Set I2C slave write address + m_sccbCtrl.write(ucDevAddr); + + if(ulSize == 1){ + m_sccbCtrl.write(ucBuffer[0]); + }else{ + for(int i=0;i<ulSize;i++){ + m_sccbCtrl.write(ucBuffer[i]); + } + } + + m_sccbCtrl.stop(); + + return 0; +} +*/ void CamRegBuf::WriteRegSet(const struct sensor_reg * reglist) { unsigned int i = 0; @@ -87,5 +126,6 @@ { SCCBWrite(reglist[i].reg, reglist[i].val); ++i; + wait_ms(1); } } \ No newline at end of file