OB1203 basic mbed driver

Dependents:   OB1203_IDT

Revision:
9:0c3d2eea1c79
Parent:
8:6c19c052b053
Child:
10:6703d2cdeabc
--- a/OB1203.cpp	Thu May 17 21:52:52 2018 +0000
+++ b/OB1203.cpp	Fri Jun 01 13:17:30 2018 +0000
@@ -189,11 +189,24 @@
 void OB1203::setPPGavg_and_rate()
 {
     char writeData[2];
-    writeData[0] = ppg_avg;
+    writeData[0] = ppg_avg | 0x0A; //use standard LED max settings
     writeData[1] = ppg_pwidth | ppg_freq | ppg_rate;
     writeBlock(OB1203_ADDR,REG_PPG_AVG,writeData,2);
 }
 
+void OB1203::setBioTrim()
+{
+    char writeData[1];
+    writeData[0] = bio_trim;
+    writeBlock(OB1203_ADDR, REG_BIO_TRIM,writeData,1);
+}
+
+void OB1203::setLEDTrim()
+{
+    char writeData[1];
+    writeData[0] = led_trim;
+    writeBlock(OB1203_ADDR, REG_LED_TRIM,writeData,1);
+}
 
 void OB1203::setDigitalCan()
 {
@@ -257,6 +270,7 @@
     ppg_ps_en = 1;
     ppg_ps_mode = PS_MODE;
     setOscTrim();
+    setLEDTrim();
     setMainConfig();
 }
 
@@ -283,6 +297,7 @@
     ppg_ps_en = PPG_PS_ON;
     ppg_ps_mode = PS_MODE;
     setOscTrim();
+    setLEDTrim();
     setMainConfig();    
 }
 
@@ -291,6 +306,7 @@
 {
     reset();
     ps_int_en = PS_INT_OFF;
+    ls_en = LS_OFF;
     setIntConfig(); 
     char readData[1];
     readBlock(OB1203_ADDR,REG_PS_INT_CFG_1,readData,1);
@@ -302,6 +318,8 @@
     setFifoConfig(); 
     ppg_ps_mode = HR_MODE;
     setOscTrim();
+    setBioTrim();
+    setLEDTrim();
     setMainConfig();    
 }
 
@@ -309,6 +327,7 @@
 {
     reset();
     ps_int_en = PS_INT_OFF;
+    ls_en = LS_OFF;
     setIntConfig(); 
     char readData[1];
     readBlock(OB1203_ADDR,REG_PS_INT_CFG_1,readData,1);
@@ -320,6 +339,8 @@
     setFifoConfig(); 
     ppg_ps_mode = SPO2_MODE;
     setOscTrim();
+    setLEDTrim();
+    setBioTrim();
     setMainConfig();    
 }