PSoC-MAX30101
PSoC MAX30101 Library
MAX30101.h
1 
8 #ifndef __MAX30101_H__
9  #define __MAX30101_H__
10 
11  #include "cytypes.h"
12  #include "MAX30101_Defs.h"
13 
22  #define BUFFER_STORAGE_SIZE 8
23 
27  typedef struct
28  {
29  uint32_t red[BUFFER_STORAGE_SIZE];
30  uint32_t IR[BUFFER_STORAGE_SIZE];
31  uint32_t green[BUFFER_STORAGE_SIZE];
32  uint8_t head;
33  uint8_t tail;
34  } MAX30101_Data; //This is our circular buffer of readings from the sensor
35 
36 
37  //==============================================
38  // MAX30101 FUNCTIONS
39  //==============================================
44  uint8_t MAX30101_Start(void);
45 
52  uint8_t MAX30101_IsDevicePresent(void);
53 
54  //==============================================
55  // MAX30101 INTERRUPT FUNCTIONS
56  //==============================================
57 
65  uint8_t MAX30101_IsFIFOAFull(uint8_t* flag);
66 
74  uint8_t MAX30101_IsPPGReady(uint8_t* flag);
75 
83  uint8_t MAX30101_IsALCOverflow(uint8_t* flag);
84 
92  uint8_t MAX30101_IsPowerReady(uint8_t* flag);
93 
101  uint8_t MAX30101_IsTempReady(uint8_t* flag);
102 
109  uint8_t MAX30101_EnableFIFOAFullInt(void);
110 
117  uint8_t MAX30101_EnablePPGReadyInt(void);
118 
125  uint8_t MAX30101_EnableALCOverflowInt(void);
126 
133  uint8_t MAX30101_EnableTempReadyInt(void);
134 
141  uint8_t MAX30101_DisableFIFOAFullInt(void);
142 
149  uint8_t MAX30101_DisablePPGReadyInt(void);
150 
157  uint8_t MAX30101_DisableALCOverflowInt(void);
158 
165  uint8_t MAX30101_DisableTempReadyInt(void);
166 
167  //==============================================
168  // MAX30101 FIFO FUNCTIONS
169  //==============================================
170 
178  uint8_t MAX30101_ReadWritePointer(uint8_t* wr);
179 
187  uint8_t MAX30101_ReadOverflowCounter(uint8_t* oc);
188 
196  uint8_t MAX30101_ReadReadPointer(uint8_t* rr);
197 
204  uint8_t MAX30101_ClearFIFO(void);
205 
221  uint8_t MAX30101_ReadRawFIFOBytes(uint8_t num_samples, uint8_t active_leds, uint8_t* data);
222 
238  uint8_t MAX30101_ReadRawFIFO(uint8_t num_samples, uint8_t active_leds, uint32_t* data);
239 
255  uint8_t MAX30101_ReadFIFO(uint8_t num_samples, uint8_t active_leds, MAX30101_Data* data);
256 
257  //==============================================
258  // MAX30101 FIFO CONFIGURATION FUNCTIONS
259  //==============================================
260 
271  uint8_t MAX30101_SetSampleAverage(uint8_t samples);
272 
281  uint8_t MAX30101_EnableFIFORollover(void);
282 
292  uint8_t MAX30101_DisableFIFORollover(void);
293 
303  uint8_t MAX30101_SetFIFOAlmostFull(uint8_t samples);
304 
305  //==============================================
306  // MAX30101 MODE CONFIGURATION FUNCTIONS
307  //==============================================
308 
318  uint8_t MAX30101_Shutdown(void);
319 
326  uint8_t MAX30101_WakeUp(void);
327 
338  uint8_t MAX30101_Reset(void);
339 
353  uint8_t MAX30101_SetMode(uint8_t mode);
354 
355  //==============================================
356  // MAX30101 SPO2 CONFIGURATION FUNCTIONS
357  //==============================================
358 
374  uint8_t MAX30101_SetSpO2SampleRate(uint8_t range);
375 
395  uint8_t MAX30101_SetSpO2ADCRange(uint8_t sr);
396 
412  uint8_t MAX30101_SetSpO2PulseWidth(uint8_t pw);
413 
426  uint8_t MAX30101_SetLEDPulseAmplitude(uint8_t led_channel, uint8_t pa);
427 
428  //======================================================
429  // MAX30101 MULTI LED MODE CONFIGURATION FUNCTIONS
430  //======================================================
451  uint8_t MAX30101_EnableSlot(uint8_t slot, uint8_t led);
452 
461  uint8_t MAX30101_DisableSlots(void);
462 
463  //======================================================
464  // MAX30101 DIE TEMPERATURE FUNCTIONS
465  //======================================================
466 
478  uint8_t MAX30101_ReadTemperature(float* temperature);
479 
492  uint8_t MAX30101_ReadRawTemperature(int8_t* integer, uint8_t* frac);
493 
494 
502  uint8_t MAX30101_StartTemperatureConversion(void);
503 
504  //======================================================
505  // MAX30101 PART/REVISION ID FUNCTIONS
506  //======================================================
515  uint8_t MAX30101_ReadPartID(uint8_t* part_id);
516 
525  uint8_t MAX30101_ReadRevisionID(uint8_t* revision_id);
526 
527  //======================================================
528  // MAX30101 HELPER FUNCTIONS
529  //======================================================
539  uint8_t MAX30101_ReadRegister(uint8_t reg_addr, uint8_t* reg_value);
540 
553  uint8_t MAX30101_LogRegisters(void (*fun_ptr)(const char*));
554 
566  uint8_t MAX30101_PrintRegister(void (*print_fun)(const char*), uint8_t reg_addr);
567 
568 #endif
569 /* [] END OF FILE */
uint8_t tail
Current tail of the circular buffer.
Definition: MAX30101.h:33
Circular buffer for MAX30101 data.
Definition: MAX30101.h:27
uint8_t head
Current head of the circular buffer.
Definition: MAX30101.h:32