Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: test_MAX30101 testSensor
Diff: MAX30101.cpp
- Revision:
- 1:fc677d82d0f1
- Parent:
- 0:4ad9373787e8
- Child:
- 2:c465a8d44b9a
--- a/MAX30101.cpp Tue Dec 29 06:25:58 2015 +0000
+++ b/MAX30101.cpp Tue Dec 29 07:40:53 2015 +0000
@@ -33,7 +33,7 @@
#define REG_TEMP_FRAC 0x20 /* Die Temperature Fraction */
#define REG_TEMP_EN 0x21 /* Die Temperature Config */
/* Proximity Function */
-#define REG_PROX_INT_THS 0x30 /* Proximity Interrupt Threshold */
+#define REG_PROX_INT_THR 0x30 /* Proximity Interrupt Threshold */
/* Part ID */
#define REG_REV_ID 0xFE /* Revision ID */
#define REG_PART_ID 0xFF /* Part ID: 0x15 */
@@ -66,4 +66,242 @@
uint8_t rev ;
readRegs(REG_REV_ID, &rev, 1) ;
return( rev ) ;
-}
\ No newline at end of file
+}
+
+uint16_t MAX30101::getIntStatus(void)
+{
+ uint8_t res[2] ;
+ uint16_t value ;
+ readRegs(REG_INT_MSB, res, 2) ;
+ value = (res[0] << 8) | res[1] ;
+ return( value ) ;
+}
+
+void MAX30101::setIntEnable(uint16_t mask)
+{
+ uint8_t res[3] ;
+ res[0] = REG_INT_MSB ;
+ res[1] = (mask >> 8) & 0xFF ;
+ res[2] = (mask & 0xFF) ;
+ writeRegs(res, 3) ;
+}
+
+uint8_t MAX30101::getFIFO_WR_PTR(void)
+{
+ uint8_t data ;
+ readRegs(REG_FIFO_WR_PTR, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setFIFO_WR_PTR(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_FIFO_WR_PTR ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getOVF_COUNTER(void)
+{
+ uint8_t data ;
+ readRegs(REG_OVF_COUNTER, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setOVF_COUNTER(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_OVF_COUNTER ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getFIFO_RD_PTR(void)
+{
+ uint8_t data ;
+ readRegs(REG_FIFO_RD_PTR, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setFIFO_RD_PTR(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_FIFO_RD_PTR ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getFIFO_DATA(void)
+{
+ uint8_t data ;
+ readRegs(REG_FIFO_DATA, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setFIFO_DATA(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_FIFO_DATA ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getFIFO_CONFIG(void)
+{
+ uint8_t data ;
+ readRegs(REG_FIFO_CONFIG, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setFIFO_CONFIG(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_FIFO_CONFIG ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getMODE_CONFIG(void)
+{
+ uint8_t data ;
+ readRegs(REG_MODE_CONFIG, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setMODE_CONFIG(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_MODE_CONFIG ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getSPO2_CONFIG(void)
+{
+ uint8_t data ;
+ readRegs(REG_SPO2_CONFIG, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setSPO2_CONFIG(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_SPO2_CONFIG ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getLED1_PA(void)
+{
+ uint8_t data ;
+ readRegs(REG_LED1_PA, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setLED1_PA(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_LED1_PA ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getLED2_PA(void)
+{
+ uint8_t data ;
+ readRegs(REG_LED2_PA, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setLED2_PA(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_LED2_PA ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getLED3_PA(void)
+{
+ uint8_t data ;
+ readRegs(REG_LED3_PA, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setLED3_PA(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_LED3_PA ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint8_t MAX30101::getPILOT_PA(void)
+{
+ uint8_t data ;
+ readRegs(REG_PILOT_PA, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setPILOT_PA(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_PILOT_PA ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+
+uint16_t MAX30101::getSLOT(void)
+{
+ uint8_t res[2] ;
+ uint16_t data ;
+ readRegs(REG_SLOT_MSB, res, 2) ;
+ data = (res[0] << 8) | res[1] ;
+ return( data ) ;
+}
+
+void MAX30101::setSLOT(uint16_t data)
+{
+ uint8_t res[3] ;
+ res[0] = REG_SLOT_MSB ;
+ res[1] = (data >> 8) & 0xFF ;
+ res[2] = data & 0xFF ;
+ writeRegs(res, 3) ;
+}
+
+uint8_t MAX30101::getTEMP_INT(void)
+{
+ uint8_t data ;
+ readRegs(REG_TEMP_INT, &data, 1) ;
+ return( data ) ;
+}
+
+uint8_t MAX30101::getTEMP_FRAM(void)
+{
+ uint8_t data ;
+ readRegs(REG_TEMP_FRAC, &data, 1) ;
+ return( data ) ;
+}
+
+uint8_t MAX30101::getTEMP_EN(void)
+{
+ uint8_t data ;
+ readRegs(REG_TEMP_EN, &data, 1) ;
+ return( data ) ;
+}
+
+uint8_t MAX30101::getPROX_INT_THR(void)
+{
+ uint8_t data ;
+ readRegs(REG_PROX_INT_THR, &data, 1) ;
+ return( data ) ;
+}
+
+void MAX30101::setPROX_INT_THR(uint8_t data)
+{
+ uint8_t res[2] ;
+ res[0] = REG_PROX_INT_THR ;
+ res[1] = data ;
+ writeRegs(res, 2) ;
+}
+