OB1203 basic mbed driver
Diff: OB1203.cpp
- Revision:
- 5:527556d05aa8
- Parent:
- 4:f25ca600a0e6
- Child:
- 6:337ee64ca7ab
--- a/OB1203.cpp Mon May 14 16:57:51 2018 +0000 +++ b/OB1203.cpp Mon May 14 18:49:02 2018 +0000 @@ -68,7 +68,35 @@ { int status_reg_vals; status_reg_vals = get_status(); - return ((status_reg_vals & 0x10)>>8) || (status_reg_vals & 0x01); + return ((status_reg_vals & 0x0100)>>8) || (status_reg_vals & 0x0091); +} + +bool OB1203::lsIsNew() +{ + int status_reg_vals; + status_reg_vals = get_status(); + return ((status_reg_vals & 0x0100)>>8); +} + +bool OB1203::psIsNew() +{ + int status_reg_vals; + status_reg_vals = get_status(); + return (status_reg_vals & 0x0001); +} + +bool OB1203::tempIsNew() +{ + int status_reg_vals; + status_reg_vals = get_status(); + return (status_reg_vals & 0x0080); +} + +bool OB1203::bioIsNew() +{ + int status_reg_vals; + status_reg_vals = get_status(); + return (status_reg_vals & 0x0010); } void OB1203::setMainConfig() @@ -76,7 +104,7 @@ char writeData[2]; writeData[0] = ls_sai | ls_mode | ls_en; //MAIN_CTRL_0 writeData[1] = temp_en | ps_sai_en | ppg_ps_mode | ppg_ps_en; //MAIN_CTRL_1 - pc.printf("main config 1 to write %02x\r\n",writeData[1]); +// pc.printf("main config 1 to write %02x\r\n",writeData[1]); writeBlock(OB1203_ADDR,REG_MAIN_CTRL_0,writeData,2); } @@ -291,15 +319,16 @@ char OB1203::get_ls_data(uint32_t *data) { - char byte_data[19]; + char byte_data[21]; readBlock(OB1203_ADDR,REG_STATUS_0,byte_data,19); #ifdef DEBUG - pc.printf("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\r\n", + pc.printf("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x $02x\r\n", byte_data[0],byte_data[1],byte_data[2],byte_data[3], byte_data[4],byte_data[5],byte_data[6],byte_data[7], byte_data[8],byte_data[9],byte_data[10],byte_data[11], byte_data[12],byte_data[13],byte_data[14],byte_data[15], - byte_data[16],byte_data[17],byte_data[18]); + byte_data[16],byte_data[17],byte_data[18]), + byte_data[19],byte_data[20]; #endif @@ -309,7 +338,7 @@ data[3] = bytes2uint32(byte_data,10); //b data[4] = bytes2uint32(byte_data,13); //r data[5] = bytes2uint32(byte_data,16); //c - + data[6] = ((uint32_t)byte_data[19])<<8 | ((uint32_t)byte_data[20]); //temp data return ( (byte_data[0] & LS_NEW_DATA) == 0x01 ? 1 : 0); //return 1 if new data or 0 if old data }