33 #define MAX30100_I2C_ADDRESS 0x57    44 typedef void (*func_sample_ready_handler)(
max30100_value sample, 
void* arg);
    49     MAX30100_SAMPLE_STATE_IDLE,
    51     MAX30100_SAMPLE_STATE_ONE_SHOT,
    53     MAX30100_SAMPLE_STATE_CONTINUOUS,
    55     MAX30100_SAMPLE_STATE_CONTINUOUS_BUFFERED
    56 } MAX30100_SAMPLE_STATE;
    61     MAX30100_REG_INTERRUPT_STATUS = 0x00,
    63     MAX30100_REG_INTERRUPT_ENABLE = 0x01,
    65     MAX30100_REG_FIFO_WR_PTR = 0x02,
    67     MAX30100_REG_FIFO_OVF_COUNTER = 0x03,
    69     MAX30100_REG_FIFO_RD_PTR = 0x04,
    71     MAX30100_REG_FIFO_DATA = 0x05,
    73     MAX30100_REG_MODE_CONFIG = 0x06,
    75     MAX30100_REG_SPO2_CONFIG = 0x07,
    77     MAX30100_REG_LED_CONFIG = 0x09,
    79     MAX30100_REG_TEMP_INTEGER = 0x16,
    81     MAX30100_REG_TEMP_FRACTION = 0x17,
    83     MAX30100_REG_REV_ID = 0xFE,
    85     MAX30100_REG_PART_ID = 0xFF
    90 #define MAX30100_A_FULL         (1 << 7)    92 #define MAX30100_TEMP_RDY       (1 << 6)    94 #define MAX30100_HR_RDY         (1 << 5)    96 #define MAX30100_SPO2_RDY       (1 << 4)    98 #define MAX30100_PWR_RDY        (1 << 0)   102 #define MAX30100_EN_A_FULL      (1 << 7)   104 #define MAX30100_EN_TEMP_RDY    (1 << 6)   106 #define MAX30100_EN_HR_RDY      (1 << 5)   108 #define MAX30100_EN_SPO2_RDY    (1 << 4)   112 #define MAX30100_SHDN           (1 << 7)   114 #define MAX30100_RESET          (1 << 6)   116 #define MAX30100_TEMP_EN        (1 << 3)   118 typedef enum _MAX30100_MODE {
   120     MAX30100_MODE_DISABLED = 0x00,
   122     MAX30100_MODE_HR_EN = 0x02,
   124     MAX30100_MODE_SPO2_EN = 0x03
   128 #define MAX30100_SPO2_HI_RES_EN (1 << 6)   129 typedef enum _MAX30100_SR {
   130     MAX30100_SR_50_HZ = 0x00,
   131     MAX30100_SR_100_HZ = 0x01,
   132     MAX30100_SR_167_HZ = 0x02,
   133     MAX30100_SR_200_HZ = 0x03,
   134     MAX30100_SR_400_HZ = 0x04,
   135     MAX30100_SR_600_HZ = 0x05,
   136     MAX30100_SR_900_HZ = 0x06,
   137     MAX30100_SR_1000_HZ = 0x07
   140 typedef enum _MAX30100_LED_PW {
   141     MAX30100_LED_PW_200_US_13_BITS = 0x00,
   142     MAX30100_LED_PW_400_US_14_BITS = 0x01,
   143     MAX30100_LED_PW_800_US_15_BITS = 0x02,
   144     MAX30100_LED_PW_1600_US_16_BITS = 0x03
   149 typedef enum _MAX30100_LED_CURRENT {
   150     MAX30100_LED_CURRENT_0_0_MA = 0x00,
   151     MAX30100_LED_CURRENT_4_4_MA = 0x01,
   152     MAX30100_LED_CURRENT_7_6_MA = 0x02,
   153     MAX30100_LED_CURRENT_11_0_MA = 0x03,
   154     MAX30100_LED_CURRENT_14_2_MA = 0x04,
   155     MAX30100_LED_CURRENT_17_4_MA = 0x05,
   156     MAX30100_LED_CURRENT_20_8_MA = 0x06,
   157     MAX30100_LED_CURRENT_24_0_MA = 0x07,
   158     MAX30100_LED_CURRENT_27_1_MA = 0x08,
   159     MAX30100_LED_CURRENT_30_6_MA = 0x09,
   160     MAX30100_LED_CURRENT_33_8_MA = 0x0a,
   161     MAX30100_LED_CURRENT_37_0_MA = 0x0b,
   162     MAX30100_LED_CURRENT_40_2_MA = 0x0c,
   163     MAX30100_LED_CURRENT_43_6_MA = 0x0d,
   164     MAX30100_LED_CURRENT_46_8_MA = 0x0e,
   165     MAX30100_LED_CURRENT_50_0_MA = 0x0f
   166 } MAX30100_LED_CURRENT;
 Definition: max30100_regs.h:36