MAX44008 RGB Color, Infrared, and Temperature Sensor

Dependents:   test_MAX44008 testSensor

Revision:
2:e4631b2273f8
Parent:
1:45b23a5fff8e
--- a/MAX44008.cpp	Tue Dec 22 06:02:58 2015 +0000
+++ b/MAX44008.cpp	Wed Dec 07 05:13:02 2016 +0000
@@ -64,9 +64,13 @@
 
 void MAX44008::readRegs(int addr, uint8_t *data, int len)
 {
+    int i ;
     char t[1] = {addr} ;
-    m_i2c.write(m_addr, t, 1, true) ;
-    m_i2c.read(m_addr, (char*)data, len) ;
+    for (i = 0 ; i < len ; i++) {
+        t[0] = addr + i ;
+        m_i2c.write(m_addr, t, 1, true) ;
+        m_i2c.read(m_addr, (char *)(&data[i]), 1) ;
+    }
 }
 
 void MAX44008::writeRegs(uint8_t *data, int len)
@@ -501,6 +505,15 @@
     res[1] |= ((newChannel & 0x03) << 2) ;
     writeRegs(res, 2) ;
 }
+
+void MAX44008::setRawMode(uint8_t newMode)
+{
+    uint8_t res[2] ;
+    res[0] = REG_MAIN_CONFIG ;
+    res[1] = newMode ;
+    writeRegs(res, 2) ;
+}
+
 void MAX44008::setMode(uint8_t newMode)
 {
     uint8_t res[2] ;