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 haofan Zheng

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