Go to the documentation of this file.
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_i2c_master.h"
52 #define HEARTRATE4_MAP_MIKROBUS( cfg, mikrobus ) \
53 cfg.scl1 = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
54 cfg.sda1 = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
55 cfg.int1 = MIKROBUS( mikrobus, MIKROBUS_INT )
62 #define HEARTRATE4_RETVAL uint8_t
64 #define HEARTRATE4_OK 0x00
65 #define HEARTRATE4_INIT_ERROR 0xFF
72 #define HEARTRATE4_I2C_ADDRESS 0x57
84 #define HEARTRATE4_INT_STAT1 0x00
85 #define HEARTRATE4_INT_STAT2 0x01
86 #define HEARTRATE4_INT_ENABLE1 0x02
87 #define HEARTRATE4_INT_ENABLE2 0x03
94 #define HEARTRATE4_FIFO_WRITE_PTR 0x04
95 #define HEARTRATE4_FIFO_OVERFLOW 0x05
96 #define HEARTRATE4_FIFO_READ_PTR 0x06
97 #define HEARTRATE4_FIFO_DATA 0x07
98 #define HEARTRATE4_BUFFER_LENGTH 32
105 #define HEARTRATE4_FIFO_CONFIG 0x08
106 #define HEARTRATE4_MODE_CONFIG 0x09
107 #define HEARTRATE4_SPO2_CONFIG 0x0A //SpO2 Configuration
108 #define HEARTRATE4_LED1_PULSE_AMP 0x0C
109 #define HEARTRATE4_LED2_PULSE_AMP 0x0D
110 #define HEARTRATE4_LED3_PULSE_AMP 0x0E
111 #define HEARTRATE4_LED_PROX_AMP 0x10
112 #define HEARTRATE4_MULTI_LED_CONFIG1 0x11
113 #define HEARTRATE4_MULTI_LED_CONFIG2 0x12
114 #define HEARTRATE4_MIN_POWER_LEVEL 0x01
115 #define HEARTRATE4_AVG_POWER_LEVEL 0x1F
116 #define HEARTRATE4_MAX_POWER_LEVEL 0xFF
123 #define HEARTRATE4_DIE_TEMP_INT 0x1F
124 #define HEARTRATE4_DIE_TEMP_FRAC 0x20
125 #define HEARTRATE4_DIE_TEMP_CONFIG 0x21
132 #define HEARTRATE4_PROX_INT_THRESH 0x30
139 #define HEARTRATE4_REVISION_ID 0xFE
140 #define HEARTRATE4_PART_ID 0xFF
153 #define HEARTRATE4_INT_A_FULL_MASK (uint8_t)~0b10000000
154 #define HEARTRATE4_INT_A_FULL_ENABLE 0x80
155 #define HEARTRATE4_INT_A_FULL_DISABLE 0x00
156 #define HEARTRATE4_INT_DATA_RDY_MASK (uint8_t)~0b01000000
157 #define HEARTRATE4_INT_DATA_RDY_ENABLE 0x40
158 #define HEARTRATE4_INT_DATA_RDY_DISABLE 0x00
159 #define HEARTRATE4_INT_ALC_OVF_MASK (uint8_t)~0b00100000
160 #define HEARTRATE4_INT_ALC_OVF_ENABLE 0x20
161 #define HEARTRATE4_INT_ALC_OVF_DISABLE 0x00
162 #define HEARTRATE4_INT_PROX_INT_MASK (uint8_t)~0b00010000
163 #define HEARTRATE4_INT_PROX_INT_ENABLE 0x10
164 #define HEARTRATE4_INT_PROX_INT_DISABLE 0x00
165 #define HEARTRATE4_INT_DIE_TEMP_RDY_MASK (uint8_t)~0b00000010
166 #define HEARTRATE4_INT_DIE_TEMP_RDY_ENABLE 0x02
167 #define HEARTRATE4_INT_DIE_TEMP_RDY_DISABLE 0x00
174 #define HEARTRATE4_SAMPLEAVG_MASK (uint8_t)~0b11100000
175 #define HEARTRATE4_SAMPLEAVG_1 0x00
176 #define HEARTRATE4_SAMPLEAVG_2 0x20
177 #define HEARTRATE4_SAMPLEAVG_4 0x40
178 #define HEARTRATE4_SAMPLEAVG_8 0x60
179 #define HEARTRATE4_SAMPLEAVG_16 0x80
180 #define HEARTRATE4_SAMPLEAVG_32 0xA0
181 #define HEARTRATE4_ROLLOVER_MASK 0xEF
182 #define HEARTRATE4_ROLLOVER_ENABLE 0x10
183 #define HEARTRATE4_ROLLOVER_DISABLE 0x00
184 #define HEARTRATE4_A_FULL_MASK 0xF0
191 #define HEARTRATE4_SHUTDOWN_MASK 0x7F
192 #define HEARTRATE4_SHUTDOWN 0x80
193 #define HEARTRATE4_WAKEUP 0x00
194 #define HEARTRATE4_RESET_MASK 0xBF
195 #define HEARTRATE4_RESET 0x40
196 #define HEARTRATE4_MODE_MASK 0xF8
197 #define HEARTRATE4_MODE_REDONLY 0x02 // Heart Rate mode
198 #define HEARTRATE4_MODE_REDIRONLY 0x03 // SpO2 mode
199 #define HEARTRATE4_MODE_MULTILED 0x07 // Multi-LED mode
206 #define HEARTRATE4_ADCRANGE_MASK 0x9F
207 #define HEARTRATE4_ADCRANGE_2048 0x00
208 #define HEARTRATE4_ADCRANGE_4096 0x20
209 #define HEARTRATE4_ADCRANGE_8192 0x40
210 #define HEARTRATE4_ADCRANGE_16384 0x60
211 #define HEARTRATE4_SAMPLERATE_MASK 0xE3
212 #define HEARTRATE4_SAMPLERATE_50 0x00
213 #define HEARTRATE4_SAMPLERATE_100 0x04
214 #define HEARTRATE4_SAMPLERATE_200 0x08
215 #define HEARTRATE4_SAMPLERATE_400 0x0C
216 #define HEARTRATE4_SAMPLERATE_800 0x10
217 #define HEARTRATE4_SAMPLERATE_1000 0x14
218 #define HEARTRATE4_SAMPLERATE_1600 0x18
219 #define HEARTRATE4_SAMPLERATE_3200 0x1C
220 #define HEARTRATE4_PULSEWIDTH_MASK 0xFC
221 #define HEARTRATE4_PULSEWIDTH_69 0x00
222 #define HEARTRATE4_PULSEWIDTH_118 0x01
223 #define HEARTRATE4_PULSEWIDTH_215 0x02
224 #define HEARTRATE4_PULSEWIDTH_411 0x03
231 #define HEARTRATE4_SLOT1_MASK 0xF8
232 #define HEARTRATE4_SLOT2_MASK 0x8F
233 #define HEARTRATE4_SLOT3_MASK 0xF8
234 #define HEARTRATE4_SLOT4_MASK 0x8F
235 #define HEARTRATE4_SLOT_NONE 0x00
236 #define HEARTRATE4_SLOT_RED_LED 0x01
237 #define HEARTRATE4_SLOT_IR_LED 0x02
238 #define HEARTRATE4_SLOT_GREEN_LED 0x03
239 #define HEARTRATE4_SLOT_NONE_PILOT 0x04
240 #define HEARTRATE4_SLOT_RED_PILOT 0x05
241 #define HEARTRATE4_SLOT_IR_PILOT 0x06
242 #define HEARTRATE4_SLOT_GREEN_PILOT 0x07
665 #endif // _HEARTRATE4_H_
i2c_master_t i2c
Definition: heartrate4.h:263
uint32_t i2c_speed
Definition: heartrate4.h:287
void heartrate4_enable_disable_interrupts(heartrate4_t *ctx, uint8_t interrupt_flag, uint8_t enable_flag)
Enable or disable interrupt function.
Click registers object definition.
Definition: heartrate4.h:296
void heartrate4_setting_function(heartrate4_t *ctx, uint8_t flag, uint8_t mode)
Set corresponding configuration register function.
Click ctx object definition.
Definition: heartrate4.h:256
pin_name_t int1
Definition: heartrate4.h:283
uint16_t heartrate4_read_fifo_all_samples(heartrate4_t *ctx, uint8_t *buff)
Read all FIFO samples function.
uint8_t samp_rate
Definition: heartrate4.h:302
uint8_t heartrate4_check_int_pow_and_temp(heartrate4_t *ctx, uint8_t flag)
Check interrupt, power ready or internal temperature ready flag function.
uint8_t avg_samp
Definition: heartrate4.h:299
digital_in_t int1
Definition: heartrate4.h:259
uint8_t heartrate4_get_write_ptr(heartrate4_t *ctx)
Read the FIFO Write Pointer function.
uint32_t heartrate4_read_fifo_oldest_sample(heartrate4_t *ctx)
Read oldest FIFO sample function.
void heartrate4_clear_fifo(heartrate4_t *ctx)
Clearing FIFO pointers function.
uint8_t heartrate4_get_intrrupt(heartrate4_t *ctx, uint8_t flag)
Get desired interrupt function.
uint8_t heartrate4_read_data(heartrate4_t *ctx, uint8_t rd_addr)
Generic read function.
float heartrate4_read_temp_c(heartrate4_t *ctx)
Read temperature in Centigrade function.
void heartrate4_enable_slot(heartrate4_t *ctx, uint8_t slot_num, uint8_t dev)
Define slots in MultiLED mode function.
void heartrate4_reset(heartrate4_t *ctx)
Reset device function.
uint8_t pulse_width
Definition: heartrate4.h:303
uint32_t heartrate4_get_red_val(heartrate4_t *ctx)
Get Red value function.
pin_name_t scl1
Definition: heartrate4.h:278
float heartrate4_read_temp_f(heartrate4_t *ctx)
Read temperature in Fahrenheit function.
void heartrate4_default_cfg(heartrate4_t *ctx)
Click Default Configuration function.
uint8_t i2c_address
Definition: heartrate4.h:288
void heartrate4_multi_read(heartrate4_t *ctx, uint8_t rd_addr, uint8_t *buffer, uint8_t cnt)
Multi read function.
HEARTRATE4_RETVAL heartrate4_init(heartrate4_t *ctx, heartrate4_cfg_t *cfg)
Initialization function.
#define HEARTRATE4_RETVAL
Definition: heartrate4.h:62
Click configuration structure definition.
Definition: heartrate4.h:275
void heartrate4_cfg_setup(heartrate4_cfg_t *cfg)
Config Object Initialization function.
void heartrate4_write_data(heartrate4_t *ctx, uint8_t wr_addr, uint8_t wr_data)
Generic write function.
uint8_t slave_address
Definition: heartrate4.h:267
void heartrate4_fifo_setting(heartrate4_t *ctx, uint8_t flag, uint8_t samp_num)
Set FIFO configuration register function.
uint8_t heartrate4_check_int(heartrate4_t *ctx)
Get Interrupt state function.
void heartrate4_set_new_value(heartrate4_t *ctx, uint8_t reg, uint8_t mask, uint8_t value)
Set new value function.
uint8_t adc_range
Definition: heartrate4.h:301
void heartrate4_set_registers(heartrate4_t *ctx, heartrate4_set_registers_t *registers)
Set registers values function.
void heartrate4_disable_slots(heartrate4_t *ctx)
Disable slots in MultiLED mode function.
uint8_t mode
Definition: heartrate4.h:300
void heartrate4_setting_prox_and_amp(heartrate4_t *ctx, uint8_t flag, uint8_t write_data)
Set corresponding amplitude or proximity threshold function.
pin_name_t sda1
Definition: heartrate4.h:279
uint8_t heartrate4_get_read_ptr(heartrate4_t *ctx)
Read the FIFO Read Pointer function.
uint8_t led_pow_lvl
Definition: heartrate4.h:304