OB1203 basic mbed driver
Diff: OB1203.cpp
- 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(); }