MAX30100 pulse and oximeter sensor library
Ported from Arduino library
max30100.h
- Committer:
- kohlerba
- Date:
- 2017-11-21
- Revision:
- 0:0307ce7b7033
File content as of revision 0:0307ce7b7033:
#ifndef MAX30100_H
#define MAX30100_H
#include "max30100_reg.h"
#include "mbed.h"
typedef enum{ // This is the same for both LEDs
pw200, // 200us pulse
pw400, // 400us pulse
pw800, // 800us pulse
pw1600 // 1600us pulse
}pulseWidth;
typedef enum{
sr50, // 50 samples per second
sr100, // 100 samples per second
sr167, // 167 samples per second
sr200, // 200 samples per second
sr400, // 400 samples per second
sr600, // 600 samples per second
sr800, // 800 samples per second
sr1000 // 1000 samples per second
}sampleRate;
typedef enum{
i0, // No current
i4, // 4.4mA
i8, // 7.6mA
i11, // 11.0mA
i14, // 14.2mA
i17, // 17.4mA
i21, // 20.8mA
i27, // 27.1mA
i31, // 30.6mA
i34, // 33.8mA
i37, // 37.0mA
i40, // 40.2mA
i44, // 43.6mA
i47, // 46.8mA
i50 // 50.0mA
}ledCurrent;
class max30100 {
protected:
public:
//
int i2c_write (uint8_t i2c_addr, uint8_t register_addr, char* buffer, uint8_t Nbyte );
int i2c_read (uint8_t i2c_addr, uint8_t register_addr, char* buffer, uint8_t Nbyte );
//
void setLEDs(pulseWidth pw, ledCurrent red, ledCurrent ir);
void setSPO2(sampleRate sr);
int getNumSamp(void);
void readSensor(void);
void shutdown(void);
void reset(void);
void startup(void);
uint8_t getRevID(void);
uint8_t getPartID(void);
void begin(pulseWidth pw, ledCurrent ir, sampleRate sr);
void printRegisters(void);
};
#endif
Bradley Kohler