Library for MAX30101, read/write functions for registers implemented.

Dependents:   test_MAX30101 testSensor

Committer:
Rhyme
Date:
Tue Dec 29 07:40:53 2015 +0000
Revision:
1:fc677d82d0f1
Parent:
0:4ad9373787e8
Child:
2:c465a8d44b9a
all basic register read/write implemented

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:4ad9373787e8 1 /**
Rhyme 0:4ad9373787e8 2 * MAX30101
Rhyme 0:4ad9373787e8 3 * High-Sensitivity Pulse Oximeter and
Rhyme 0:4ad9373787e8 4 * Heart-Rate Sensor for Wearable Health
Rhyme 0:4ad9373787e8 5 */
Rhyme 0:4ad9373787e8 6 #ifndef _MAX30101_H_
Rhyme 0:4ad9373787e8 7 #define _MAX30101_H_
Rhyme 0:4ad9373787e8 8
Rhyme 0:4ad9373787e8 9 class MAX30101
Rhyme 0:4ad9373787e8 10 {
Rhyme 0:4ad9373787e8 11 public:
Rhyme 0:4ad9373787e8 12 /**
Rhyme 0:4ad9373787e8 13 * MAX30101 constructor
Rhyme 0:4ad9373787e8 14 *
Rhyme 0:4ad9373787e8 15 * @param sda SDA pin
Rhyme 0:4ad9373787e8 16 * @param scl SCL pin
Rhyme 0:4ad9373787e8 17 * @param addr 7bit address of the I2C peripheral
Rhyme 0:4ad9373787e8 18 */
Rhyme 0:4ad9373787e8 19 MAX30101(PinName sda, PinName scl, int addr) ;
Rhyme 0:4ad9373787e8 20
Rhyme 0:4ad9373787e8 21 ~MAX30101() ;
Rhyme 0:4ad9373787e8 22
Rhyme 1:fc677d82d0f1 23 uint8_t getID(void) ;
Rhyme 1:fc677d82d0f1 24 uint8_t getRev(void) ;
Rhyme 1:fc677d82d0f1 25 uint16_t getIntStatus(void) ;
Rhyme 1:fc677d82d0f1 26 void setIntEnable(uint16_t mask) ;
Rhyme 1:fc677d82d0f1 27 uint8_t getFIFO_WR_PTR(void) ;
Rhyme 1:fc677d82d0f1 28 void setFIFO_WR_PTR(uint8_t data) ;
Rhyme 1:fc677d82d0f1 29 uint8_t getOVF_COUNTER(void) ;
Rhyme 1:fc677d82d0f1 30 void setOVF_COUNTER(uint8_t data) ;
Rhyme 1:fc677d82d0f1 31 uint8_t getFIFO_RD_PTR(void) ;
Rhyme 1:fc677d82d0f1 32 void setFIFO_RD_PTR(uint8_t data) ;
Rhyme 1:fc677d82d0f1 33 uint8_t getFIFO_DATA(void) ;
Rhyme 1:fc677d82d0f1 34 void setFIFO_DATA(uint8_t data) ;
Rhyme 1:fc677d82d0f1 35 uint8_t getFIFO_CONFIG(void) ;
Rhyme 1:fc677d82d0f1 36 void setFIFO_CONFIG(uint8_t data) ;
Rhyme 1:fc677d82d0f1 37 uint8_t getMODE_CONFIG(void) ;
Rhyme 1:fc677d82d0f1 38 void setMODE_CONFIG(uint8_t data) ;
Rhyme 1:fc677d82d0f1 39 uint8_t getSPO2_CONFIG(void) ;
Rhyme 1:fc677d82d0f1 40 void setSPO2_CONFIG(uint8_t data) ;
Rhyme 1:fc677d82d0f1 41 uint8_t getLED1_PA(void) ;
Rhyme 1:fc677d82d0f1 42 void setLED1_PA(uint8_t data) ;
Rhyme 1:fc677d82d0f1 43 uint8_t getLED2_PA(void) ;
Rhyme 1:fc677d82d0f1 44 void setLED2_PA(uint8_t data) ;
Rhyme 1:fc677d82d0f1 45 uint8_t getLED3_PA(void) ;
Rhyme 1:fc677d82d0f1 46 void setLED3_PA(uint8_t data) ;
Rhyme 1:fc677d82d0f1 47 uint8_t getPILOT_PA(void) ;
Rhyme 1:fc677d82d0f1 48 void setPILOT_PA(uint8_t data) ;
Rhyme 1:fc677d82d0f1 49 uint16_t getSLOT(void) ;
Rhyme 1:fc677d82d0f1 50 void setSLOT(uint16_t data) ;
Rhyme 1:fc677d82d0f1 51 uint8_t getTEMP_INT(void) ;
Rhyme 1:fc677d82d0f1 52 uint8_t getTEMP_FRAM(void) ;
Rhyme 1:fc677d82d0f1 53 uint8_t getTEMP_EN(void) ; /* ? */
Rhyme 1:fc677d82d0f1 54 uint8_t getPROX_INT_THR(void) ;
Rhyme 1:fc677d82d0f1 55 void setPROX_INT_THR(uint8_t data) ;
Rhyme 0:4ad9373787e8 56
Rhyme 0:4ad9373787e8 57 /*
Rhyme 0:4ad9373787e8 58 * some member functions here (yet to be written)
Rhyme 0:4ad9373787e8 59 */
Rhyme 0:4ad9373787e8 60
Rhyme 0:4ad9373787e8 61 private:
Rhyme 0:4ad9373787e8 62 I2C m_i2c;
Rhyme 0:4ad9373787e8 63 int m_addr;
Rhyme 0:4ad9373787e8 64 void readRegs(int addr, uint8_t *data, int len) ;
Rhyme 0:4ad9373787e8 65 void writeRegs(uint8_t *data, int len) ;
Rhyme 0:4ad9373787e8 66 } ;
Rhyme 0:4ad9373787e8 67 #endif /* _MAX30101_H_ */