OB1203 basic mbed driver

Dependents:   OB1203_IDT

Revision:
8:6c19c052b053
Parent:
7:7d90f25c04fa
Child:
9:0c3d2eea1c79
--- a/OB1203.cpp	Wed May 16 22:57:36 2018 +0000
+++ b/OB1203.cpp	Thu May 17 21:52:52 2018 +0000
@@ -99,6 +99,14 @@
     return (status_reg_vals & 0x0010);
 }
 
+void OB1203::setOscTrim()
+{
+    char writeData[1];
+    writeData[0] = osc_trim;
+//    pc.printf("writing %02x to REG %02x\r\n",osc_trim,REG_OSC_TRIM);
+    writeBlock(OB1203_ADDR,REG_OSC_TRIM,writeData,1);
+}
+
 void OB1203::setMainConfig()
 {
     char writeData[2];
@@ -166,7 +174,7 @@
 void OB1203::setPPG_PSgain_cfg()
 {
     char writeData[2];
-    writeData[0] = ppg_ps_gain;
+    writeData[0] = ppg_ps_gain | ppg_LED_settling | ppg_ALC_track;
     writeData[1] = ppg_pow_save | led_flip;
     writeBlock(OB1203_ADDR,REG_PPG_PS_GAIN,writeData,2);
 }
@@ -217,6 +225,7 @@
     setIntConfig();
     ppg_ps_en = PPG_PS_OFF;
     ls_en = LS_ON;
+    setOscTrim();
     setMainConfig();
 }
 
@@ -247,6 +256,7 @@
     ls_en = LS_OFF;
     ppg_ps_en = 1;
     ppg_ps_mode = PS_MODE;
+    setOscTrim();
     setMainConfig();
 }
 
@@ -272,6 +282,7 @@
     ls_en = LS_ON;
     ppg_ps_en = PPG_PS_ON;
     ppg_ps_mode = PS_MODE;
+    setOscTrim();
     setMainConfig();    
 }
 
@@ -283,13 +294,14 @@
     setIntConfig(); 
     char readData[1];
     readBlock(OB1203_ADDR,REG_PS_INT_CFG_1,readData,1);
-    pc.printf("int config 1 = %02X\r\n",readData[0]);
+//    pc.printf("int config 1 = %02X\r\n",readData[0]);
     setPPG_PSgain_cfg();
     setPPGcurrent();
     setPPGana_can();
     setPPGavg_and_rate();
     setFifoConfig(); 
     ppg_ps_mode = HR_MODE;
+    setOscTrim();
     setMainConfig();    
 }
 
@@ -300,13 +312,14 @@
     setIntConfig(); 
     char readData[1];
     readBlock(OB1203_ADDR,REG_PS_INT_CFG_1,readData,1);
-    pc.printf("int config 1 = %02X\r\n",readData[0]);
+//    pc.printf("int config 1 = %02X\r\n",readData[0]);
     setPPG_PSgain_cfg();
     setPPGcurrent();
     setPPGana_can();
     setPPGavg_and_rate();
     setFifoConfig(); 
     ppg_ps_mode = SPO2_MODE;
+    setOscTrim();
     setMainConfig();    
 }