Da Vinci Firmware 1
Firmware for the DaVinci-M rocket avionics board.
Loading...
Searching...
No Matches
bmp3_defs.h
Go to the documentation of this file.
1
42#ifndef BMP3_DEFS_H_
43#define BMP3_DEFS_H_
44
46#ifdef __cplusplus
47extern "C" {
48#endif
49
50/********************************************************/
51/* header includes */
52#ifdef __KERNEL__
53#include <linux/types.h>
54#include <linux/kernel.h>
55#else
56#include <stdint.h>
57#include <stddef.h>
58#endif
59
60/*************************** Common macros *****************************/
61
62#if !defined(UINT8_C) && !defined(INT8_C)
63#define INT8_C(x) S8_C(x)
64#define UINT8_C(x) U8_C(x)
65#endif
66
67#if !defined(UINT16_C) && !defined(INT16_C)
68#define INT16_C(x) S16_C(x)
69#define UINT16_C(x) U16_C(x)
70#endif
71
72#if !defined(INT32_C) && !defined(UINT32_C)
73#define INT32_C(x) S32_C(x)
74#define UINT32_C(x) U32_C(x)
75#endif
76
77#if !defined(INT64_C) && !defined(UINT64_C)
78#define INT64_C(x) S64_C(x)
79#define UINT64_C(x) U64_C(x)
80#endif
81
84#ifndef NULL
85#ifdef __cplusplus
86#define NULL 0
87#else
88#define NULL ((void *) 0)
89#endif
90#endif
91
92#ifndef TRUE
93#define TRUE UINT8_C(1)
94#endif
95
96#ifndef FALSE
97#define FALSE UINT8_C(0)
98#endif
99
100/********************************************************/
103#ifndef BMP3_64BIT_COMPENSATION /*< Check if 64bit (using BMP3_64BIT_COMPENSATION) is enabled */
104#ifndef BMP3_FLOAT_COMPENSATION /*< If 64 bit integer data type is not enabled then enable
105 * BMP3_FLOAT_COMPENSATION */
106#define BMP3_FLOAT_COMPENSATION
107#endif
108#endif
109
110/********************************************************/
116#ifndef BMP3_INTF_RET_TYPE
117#define BMP3_INTF_RET_TYPE int8_t
118#endif
119
123#ifndef BMP3_INTF_RET_SUCCESS
124#define BMP3_INTF_RET_SUCCESS INT8_C(0)
125#endif
126
128#define BMP3_ADDR_I2C_PRIM UINT8_C(0x76)
129#define BMP3_ADDR_I2C_SEC UINT8_C(0x77)
130
132#define BMP3_CHIP_ID UINT8_C(0x50)
133#define BMP390_CHIP_ID UINT8_C(0x60)
134
136#define BMP3_SETTLE_TIME_PRESS UINT16_C(392)
137
139#define BMP3_SETTLE_TIME_TEMP UINT16_C(313)
140
142#define BMP3_ADC_CONV_TIME UINT16_C(2000)
143
145#define BMP3_REG_CHIP_ID UINT8_C(0x00)
146#define BMP3_REG_ERR UINT8_C(0x02)
147#define BMP3_REG_SENS_STATUS UINT8_C(0x03)
148#define BMP3_REG_DATA UINT8_C(0x04)
149#define BMP3_REG_EVENT UINT8_C(0x10)
150#define BMP3_REG_INT_STATUS UINT8_C(0x11)
151#define BMP3_REG_FIFO_LENGTH UINT8_C(0x12)
152#define BMP3_REG_FIFO_DATA UINT8_C(0x14)
153#define BMP3_REG_FIFO_WM UINT8_C(0x15)
154#define BMP3_REG_FIFO_CONFIG_1 UINT8_C(0x17)
155#define BMP3_REG_FIFO_CONFIG_2 UINT8_C(0x18)
156#define BMP3_REG_INT_CTRL UINT8_C(0x19)
157#define BMP3_REG_IF_CONF UINT8_C(0x1A)
158#define BMP3_REG_PWR_CTRL UINT8_C(0x1B)
159#define BMP3_REG_OSR UINT8_C(0X1C)
160#define BMP3_REG_ODR UINT8_C(0x1D)
161#define BMP3_REG_CONFIG UINT8_C(0x1F)
162#define BMP3_REG_CALIB_DATA UINT8_C(0x31)
163#define BMP3_REG_CMD UINT8_C(0x7E)
164
166#define BMP3_ERR_FATAL UINT8_C(0x01)
167#define BMP3_ERR_CMD UINT8_C(0x02)
168#define BMP3_ERR_CONF UINT8_C(0x04)
169
171#define BMP3_CMD_RDY UINT8_C(0x10)
172#define BMP3_DRDY_PRESS UINT8_C(0x20)
173#define BMP3_DRDY_TEMP UINT8_C(0x40)
174
176#define BMP3_MODE_SLEEP UINT8_C(0x00)
177#define BMP3_MODE_FORCED UINT8_C(0x01)
178#define BMP3_MODE_NORMAL UINT8_C(0x03)
179
182#define BMP3_ENABLE UINT8_C(0x01)
183#define BMP3_DISABLE UINT8_C(0x00)
184
187#define BMP3_INT_PIN_OPEN_DRAIN UINT8_C(0x01)
188#define BMP3_INT_PIN_PUSH_PULL UINT8_C(0x00)
189
191#define BMP3_INT_PIN_ACTIVE_HIGH UINT8_C(0x01)
192#define BMP3_INT_PIN_ACTIVE_LOW UINT8_C(0x00)
193
195#define BMP3_INT_PIN_LATCH UINT8_C(0x01)
196#define BMP3_INT_PIN_NON_LATCH UINT8_C(0x00)
197
200#define BMP3_I2C_WDT_SHORT_1_25_MS UINT8_C(0x00)
201#define BMP3_I2C_WDT_LONG_40_MS UINT8_C(0x01)
202
204#define BMP3_FIFO_NO_SUBSAMPLING UINT8_C(0x00)
205#define BMP3_FIFO_SUBSAMPLING_2X UINT8_C(0x01)
206#define BMP3_FIFO_SUBSAMPLING_4X UINT8_C(0x02)
207#define BMP3_FIFO_SUBSAMPLING_8X UINT8_C(0x03)
208#define BMP3_FIFO_SUBSAMPLING_16X UINT8_C(0x04)
209#define BMP3_FIFO_SUBSAMPLING_32X UINT8_C(0x05)
210#define BMP3_FIFO_SUBSAMPLING_64X UINT8_C(0x06)
211#define BMP3_FIFO_SUBSAMPLING_128X UINT8_C(0x07)
212
214#define BMP3_NO_OVERSAMPLING UINT8_C(0x00)
215#define BMP3_OVERSAMPLING_2X UINT8_C(0x01)
216#define BMP3_OVERSAMPLING_4X UINT8_C(0x02)
217#define BMP3_OVERSAMPLING_8X UINT8_C(0x03)
218#define BMP3_OVERSAMPLING_16X UINT8_C(0x04)
219#define BMP3_OVERSAMPLING_32X UINT8_C(0x05)
220
222#define BMP3_IIR_FILTER_DISABLE UINT8_C(0x00)
223#define BMP3_IIR_FILTER_COEFF_1 UINT8_C(0x01)
224#define BMP3_IIR_FILTER_COEFF_3 UINT8_C(0x02)
225#define BMP3_IIR_FILTER_COEFF_7 UINT8_C(0x03)
226#define BMP3_IIR_FILTER_COEFF_15 UINT8_C(0x04)
227#define BMP3_IIR_FILTER_COEFF_31 UINT8_C(0x05)
228#define BMP3_IIR_FILTER_COEFF_63 UINT8_C(0x06)
229#define BMP3_IIR_FILTER_COEFF_127 UINT8_C(0x07)
230
232#define BMP3_ODR_200_HZ UINT8_C(0x00)
233#define BMP3_ODR_100_HZ UINT8_C(0x01)
234#define BMP3_ODR_50_HZ UINT8_C(0x02)
235#define BMP3_ODR_25_HZ UINT8_C(0x03)
236#define BMP3_ODR_12_5_HZ UINT8_C(0x04)
237#define BMP3_ODR_6_25_HZ UINT8_C(0x05)
238#define BMP3_ODR_3_1_HZ UINT8_C(0x06)
239#define BMP3_ODR_1_5_HZ UINT8_C(0x07)
240#define BMP3_ODR_0_78_HZ UINT8_C(0x08)
241#define BMP3_ODR_0_39_HZ UINT8_C(0x09)
242#define BMP3_ODR_0_2_HZ UINT8_C(0x0A)
243#define BMP3_ODR_0_1_HZ UINT8_C(0x0B)
244#define BMP3_ODR_0_05_HZ UINT8_C(0x0C)
245#define BMP3_ODR_0_02_HZ UINT8_C(0x0D)
246#define BMP3_ODR_0_01_HZ UINT8_C(0x0E)
247#define BMP3_ODR_0_006_HZ UINT8_C(0x0F)
248#define BMP3_ODR_0_003_HZ UINT8_C(0x10)
249#define BMP3_ODR_0_001_HZ UINT8_C(0x11)
250
252#define BMP3_SOFT_RESET UINT8_C(0xB6)
253
255#define BMP3_FIFO_FLUSH UINT8_C(0xB0)
256
258#define BMP3_OK INT8_C(0)
259
261#define BMP3_E_NULL_PTR INT8_C(-1)
262#define BMP3_E_COMM_FAIL INT8_C(-2)
263#define BMP3_E_INVALID_ODR_OSR_SETTINGS INT8_C(-3)
264#define BMP3_E_CMD_EXEC_FAILED INT8_C(-4)
265#define BMP3_E_CONFIGURATION_ERR INT8_C(-5)
266#define BMP3_E_INVALID_LEN INT8_C(-6)
267#define BMP3_E_DEV_NOT_FOUND INT8_C(-7)
268#define BMP3_E_FIFO_WATERMARK_NOT_REACHED INT8_C(-8)
269
271#define BMP3_W_SENSOR_NOT_ENABLED INT8_C(1)
272#define BMP3_W_INVALID_FIFO_REQ_FRAME_CNT INT8_C(2)
273#define BMP3_W_MIN_TEMP INT8_C(3)
274#define BMP3_W_MAX_TEMP INT8_C(4)
275#define BMP3_W_MIN_PRES INT8_C(5)
276#define BMP3_W_MAX_PRES INT8_C(6)
277
281#define BMP3_SEL_PRESS_EN UINT16_C(1 << 1)
282#define BMP3_SEL_TEMP_EN UINT16_C(1 << 2)
283#define BMP3_SEL_DRDY_EN UINT16_C(1 << 3)
284#define BMP3_SEL_PRESS_OS UINT16_C(1 << 4)
285#define BMP3_SEL_TEMP_OS UINT16_C(1 << 5)
286#define BMP3_SEL_IIR_FILTER UINT16_C(1 << 6)
287#define BMP3_SEL_ODR UINT16_C(1 << 7)
288#define BMP3_SEL_OUTPUT_MODE UINT16_C(1 << 8)
289#define BMP3_SEL_LEVEL UINT16_C(1 << 9)
290#define BMP3_SEL_LATCH UINT16_C(1 << 10)
291#define BMP3_SEL_I2C_WDT_EN UINT16_C(1 << 11)
292#define BMP3_SEL_I2C_WDT UINT16_C(1 << 12)
293#define BMP3_SEL_ALL UINT16_C(0x7FF)
294
298#define BMP3_SEL_FIFO_MODE UINT16_C(1 << 1)
299#define BMP3_SEL_FIFO_STOP_ON_FULL_EN UINT16_C(1 << 2)
300#define BMP3_SEL_FIFO_TIME_EN UINT16_C(1 << 3)
301#define BMP3_SEL_FIFO_PRESS_EN UINT16_C(1 << 4)
302#define BMP3_SEL_FIFO_TEMP_EN UINT16_C(1 << 5)
303#define BMP3_SEL_FIFO_DOWN_SAMPLING UINT16_C(1 << 6)
304#define BMP3_SEL_FIFO_FILTER_EN UINT16_C(1 << 7)
305#define BMP3_SEL_FIFO_FWTM_EN UINT16_C(1 << 8)
306#define BMP3_SEL_FIFO_FULL_EN UINT16_C(1 << 9)
307
311#define BMP3_PRESS UINT8_C(1)
312#define BMP3_TEMP UINT8_C(2)
313#define BMP3_PRESS_TEMP UINT8_C(3)
314
316#define BMP3_MIN_TEMP_INT INT64_C(-4000)
317#define BMP3_MAX_TEMP_INT INT64_C(8500)
318#define BMP3_MIN_TEMP_DOUBLE -40.0f
319#define BMP3_MAX_TEMP_DOUBLE 85.0f
320
322#define BMP3_MIN_PRES_INT UINT64_C(3000000)
323#define BMP3_MAX_PRES_INT UINT64_C(12500000)
324#define BMP3_MIN_PRES_DOUBLE 30000.0f
325#define BMP3_MAX_PRES_DOUBLE 125000.0f
326
328#define BMP3_ERR_FATAL_MSK UINT8_C(0x01)
329
330#define BMP3_ERR_CMD_MSK UINT8_C(0x02)
331#define BMP3_ERR_CMD_POS UINT8_C(0x01)
332
333#define BMP3_ERR_CONF_MSK UINT8_C(0x04)
334#define BMP3_ERR_CONF_POS UINT8_C(0x02)
335
336#define BMP3_STATUS_CMD_RDY_MSK UINT8_C(0x10)
337#define BMP3_STATUS_CMD_RDY_POS UINT8_C(0x04)
338
339#define BMP3_STATUS_DRDY_PRESS_MSK UINT8_C(0x20)
340#define BMP3_STATUS_DRDY_PRESS_POS UINT8_C(0x05)
341
342#define BMP3_STATUS_DRDY_TEMP_MSK UINT8_C(0x40)
343#define BMP3_STATUS_DRDY_TEMP_POS UINT8_C(0x06)
344
345#define BMP3_OP_MODE_MSK UINT8_C(0x30)
346#define BMP3_OP_MODE_POS UINT8_C(0x04)
347
348#define BMP3_PRESS_EN_MSK UINT8_C(0x01)
349
350#define BMP3_TEMP_EN_MSK UINT8_C(0x02)
351#define BMP3_TEMP_EN_POS UINT8_C(0x01)
352
353#define BMP3_IIR_FILTER_MSK UINT8_C(0x0E)
354#define BMP3_IIR_FILTER_POS UINT8_C(0x01)
355
356#define BMP3_ODR_MSK UINT8_C(0x1F)
357
358#define BMP3_PRESS_OS_MSK UINT8_C(0x07)
359
360#define BMP3_TEMP_OS_MSK UINT8_C(0x38)
361#define BMP3_TEMP_OS_POS UINT8_C(0x03)
362
363#define BMP3_FIFO_MODE_MSK UINT8_C(0x01)
364
365#define BMP3_FIFO_STOP_ON_FULL_MSK UINT8_C(0x02)
366#define BMP3_FIFO_STOP_ON_FULL_POS UINT8_C(0x01)
367
368#define BMP3_FIFO_TIME_EN_MSK UINT8_C(0x04)
369#define BMP3_FIFO_TIME_EN_POS UINT8_C(0x02)
370
371#define BMP3_FIFO_PRESS_EN_MSK UINT8_C(0x08)
372#define BMP3_FIFO_PRESS_EN_POS UINT8_C(0x03)
373
374#define BMP3_FIFO_TEMP_EN_MSK UINT8_C(0x10)
375#define BMP3_FIFO_TEMP_EN_POS UINT8_C(0x04)
376
377#define BMP3_FIFO_FILTER_EN_MSK UINT8_C(0x18)
378#define BMP3_FIFO_FILTER_EN_POS UINT8_C(0x03)
379
380#define BMP3_FIFO_DOWN_SAMPLING_MSK UINT8_C(0x07)
381
382#define BMP3_FIFO_FWTM_EN_MSK UINT8_C(0x08)
383#define BMP3_FIFO_FWTM_EN_POS UINT8_C(0x03)
384
385#define BMP3_FIFO_FULL_EN_MSK UINT8_C(0x10)
386#define BMP3_FIFO_FULL_EN_POS UINT8_C(0x04)
387
388#define BMP3_INT_OUTPUT_MODE_MSK UINT8_C(0x01)
389
390#define BMP3_INT_LEVEL_MSK UINT8_C(0x02)
391#define BMP3_INT_LEVEL_POS UINT8_C(0x01)
392
393#define BMP3_INT_LATCH_MSK UINT8_C(0x04)
394#define BMP3_INT_LATCH_POS UINT8_C(0x02)
395
396#define BMP3_INT_DRDY_EN_MSK UINT8_C(0x40)
397#define BMP3_INT_DRDY_EN_POS UINT8_C(0x06)
398
399#define BMP3_I2C_WDT_EN_MSK UINT8_C(0x02)
400#define BMP3_I2C_WDT_EN_POS UINT8_C(0x01)
401
402#define BMP3_I2C_WDT_SEL_MSK UINT8_C(0x04)
403#define BMP3_I2C_WDT_SEL_POS UINT8_C(0x02)
404
405#define BMP3_INT_STATUS_FWTM_MSK UINT8_C(0x01)
406
407#define BMP3_INT_STATUS_FFULL_MSK UINT8_C(0x02)
408#define BMP3_INT_STATUS_FFULL_POS UINT8_C(0x01)
409
410#define BMP3_INT_STATUS_DRDY_MSK UINT8_C(0x08)
411#define BMP3_INT_STATUS_DRDY_POS UINT8_C(0x03)
412
414#define BMP3_SET_LOW_BYTE UINT16_C(0x00FF)
415#define BMP3_SET_HIGH_BYTE UINT16_C(0xFF00)
416
418#define BMP3_CONCAT_BYTES(msb, lsb) (((uint16_t)msb << 8) | (uint16_t)lsb)
419
420#define BMP3_SET_BITS(reg_data, bitname, data) \
421 ((reg_data & ~(bitname##_MSK)) | \
422 ((data << bitname##_POS) & bitname##_MSK))
423
424/* Macro variant to handle the bitname position if it is zero */
425#define BMP3_SET_BITS_POS_0(reg_data, bitname, data) \
426 ((reg_data & ~(bitname##_MSK)) | \
427 (data & bitname##_MSK))
428
429#define BMP3_GET_BITS(reg_data, bitname) ((reg_data & (bitname##_MSK)) >> \
430 (bitname##_POS))
431
432/* Macro variant to handle the bitname position if it is zero */
433#define BMP3_GET_BITS_POS_0(reg_data, bitname) (reg_data & (bitname##_MSK))
434
435#define BMP3_GET_LSB(var) (uint8_t)(var & BMP3_SET_LOW_BYTE)
436#define BMP3_GET_MSB(var) (uint8_t)((var & BMP3_SET_HIGH_BYTE) >> 8)
437
439#define BMP3_LEN_CALIB_DATA UINT8_C(21)
440#define BMP3_LEN_P_AND_T_HEADER_DATA UINT8_C(7)
441#define BMP3_LEN_P_OR_T_HEADER_DATA UINT8_C(4)
442#define BMP3_LEN_P_T_DATA UINT8_C(6)
443#define BMP3_LEN_GEN_SETT UINT8_C(7)
444#define BMP3_LEN_P_DATA UINT8_C(3)
445#define BMP3_LEN_T_DATA UINT8_C(3)
446#define BMP3_LEN_SENSOR_TIME UINT8_C(3)
447#define BMP3_FIFO_MAX_FRAMES UINT8_C(73)
448
450#define BMP3_POWER_CNTL UINT16_C(0x0006)
451
453#define BMP3_ODR_FILTER UINT16_C(0x00F0)
454
456#define BMP3_INT_CTRL UINT16_C(0x0708)
457
459#define BMP3_ADV_SETT UINT16_C(0x1800)
460
465#define BMP3_FIFO_CONFIG_1 UINT16_C(0x003E)
466
468#define BMP3_FIFO_CONFIG_2 UINT16_C(0x00C0)
469
471#define BMP3_FIFO_INT_CTRL UINT16_C(0x0300)
472
475#define BMP3_FIFO_TEMP_PRESS_FRAME UINT8_C(0x94)
476
478#define BMP3_FIFO_TEMP_FRAME UINT8_C(0x90)
479
481#define BMP3_FIFO_PRESS_FRAME UINT8_C(0x84)
482
484#define BMP3_FIFO_TIME_FRAME UINT8_C(0xA0)
485
487#define BMP3_FIFO_ERROR_FRAME UINT8_C(0x44)
488
490#define BMP3_FIFO_CONFIG_CHANGE UINT8_C(0x48)
491
493#define BMP3_FIFO_EMPTY_FRAME UINT8_C(0x80)
494
496#define BMP3_SENSORTIME_OVERHEAD_BYTES UINT8_C(20)
497
498/********************************************************/
499
509
510/********************************************************/
511
528typedef BMP3_INTF_RET_TYPE (*bmp3_read_fptr_t)(uint8_t reg_addr, uint8_t *read_data, uint32_t len, void *intf_ptr);
529
543typedef BMP3_INTF_RET_TYPE (*bmp3_write_fptr_t)(uint8_t reg_addr, const uint8_t *read_data, uint32_t len,
544 void *intf_ptr);
545
555typedef void (*bmp3_delay_us_fptr_t)(uint32_t period, void *intf_ptr);
556
557/********************************************************/
558
564{
567 uint16_t par_t1;
568 uint16_t par_t2;
569 int8_t par_t3;
570 int16_t par_p1;
571 int16_t par_p2;
572 int8_t par_p3;
573 int8_t par_p4;
574 uint16_t par_p5;
575 uint16_t par_p6;
576 int8_t par_p7;
577 int8_t par_p8;
578 int16_t par_p9;
579 int8_t par_p10;
580 int8_t par_p11;
581 int64_t t_lin;
582};
583
589{
591 uint8_t i2c_wdt_en;
592
594 uint8_t i2c_wdt_sel;
595};
596
602{
604 uint8_t press_os;
605
607 uint8_t temp_os;
608
610 uint8_t iir_filter;
611
613 uint8_t odr;
614};
615
621{
623 uint8_t cmd_rdy;
624
626 uint8_t drdy_press;
627
629 uint8_t drdy_temp;
630};
631
637{
639 uint8_t fifo_wm;
640
642 uint8_t fifo_full;
643
645 uint8_t drdy;
646};
647
653{
655 uint8_t fatal;
656
658 uint8_t cmd;
659
661 uint8_t conf;
662};
663
669{
672
675
678
680 uint8_t pwr_on_rst;
681};
682
688{
690 uint8_t output_mode;
691
693 uint8_t level;
694
696 uint8_t latch;
697
699 uint8_t drdy_en;
700};
701
707{
709 uint8_t op_mode;
710
712 uint8_t press_en;
713
715 uint8_t temp_en;
716
719
722
725};
726
732{
735 uint8_t *buffer;
736
738 uint16_t byte_count;
739
741 uint8_t req_frames;
742
744 uint16_t start_idx;
745
748
750 uint8_t config_err;
751
753 uint32_t sensor_time;
754
757
760};
761
767{
769 uint8_t mode;
770
773
775 uint8_t time_en;
776
778 uint8_t press_en;
779
781 uint8_t temp_en;
782
785
787 uint8_t filter_en;
788
790 uint8_t fwtm_en;
791
793 uint8_t ffull_en;
794};
795
796#ifdef BMP3_FLOAT_COMPENSATION
797
803{
806 double par_t1;
807 double par_t2;
808 double par_t3;
809 double par_p1;
810 double par_p2;
811 double par_p3;
812 double par_p4;
813 double par_p5;
814 double par_p6;
815 double par_p7;
816 double par_p8;
817 double par_p9;
818 double par_p10;
819 double par_p11;
820 double t_lin;
821};
822
828{
831
834};
835
842{
845
847 double pressure;
848};
849
850#else
851
856struct bmp3_data
857{
859 int64_t temperature;
860
862 uint64_t pressure;
863};
864
868struct bmp3_calib_data
869{
872};
873
874#endif /* BMP3_FLOAT_COMPENSATION */
875
882{
884 uint64_t pressure;
885
887 int64_t temperature;
888};
889
895{
897 uint8_t chip_id;
898
905 void *intf_ptr;
906
912
915
917 uint8_t dummy_byte;
918
921
924
927
930};
931
932#ifdef __cplusplus
933}
934#endif /* End of CPP guard */
935
936#endif /* BMP3_DEFS_H_ */
BMP3_INTF_RET_TYPE(* bmp3_write_fptr_t)(uint8_t reg_addr, const uint8_t *read_data, uint32_t len, void *intf_ptr)
Bus communication function pointer which should be mapped to the platform specific write functions of...
Definition bmp3_defs.h:543
#define BMP3_INTF_RET_TYPE
Definition bmp3_defs.h:117
bmp3_intf
Interface selection Enums.
Definition bmp3_defs.h:503
@ BMP3_SPI_INTF
Definition bmp3_defs.h:505
@ BMP3_I2C_INTF
Definition bmp3_defs.h:507
void(* bmp3_delay_us_fptr_t)(uint32_t period, void *intf_ptr)
Delay function pointer which should be mapped to delay function of the user.
Definition bmp3_defs.h:555
BMP3_INTF_RET_TYPE(* bmp3_read_fptr_t)(uint8_t reg_addr, uint8_t *read_data, uint32_t len, void *intf_ptr)
Type definitions.
Definition bmp3_defs.h:528
bmp3 advance settings
Definition bmp3_defs.h:589
uint8_t i2c_wdt_sel
Definition bmp3_defs.h:594
Calibration data.
Definition bmp3_defs.h:828
struct bmp3_reg_calib_data reg_calib_data
Definition bmp3_defs.h:833
struct bmp3_quantized_calib_data quantized_calib_data
Definition bmp3_defs.h:830
bmp3 sensor structure which comprises of temperature and pressure data.
Definition bmp3_defs.h:842
double pressure
Definition bmp3_defs.h:847
double temperature
Definition bmp3_defs.h:844
bmp3 device structure
Definition bmp3_defs.h:895
bmp3_read_fptr_t read
Definition bmp3_defs.h:920
BMP3_INTF_RET_TYPE intf_rslt
Definition bmp3_defs.h:914
bmp3_write_fptr_t write
Definition bmp3_defs.h:923
uint8_t chip_id
Definition bmp3_defs.h:897
enum bmp3_intf intf
Definition bmp3_defs.h:911
struct bmp3_calib_data calib_data
Definition bmp3_defs.h:929
bmp3_delay_us_fptr_t delay_us
Definition bmp3_defs.h:926
uint8_t dummy_byte
Definition bmp3_defs.h:917
void * intf_ptr
Definition bmp3_defs.h:905
bmp3 error status flags
Definition bmp3_defs.h:653
bmp3 fifo frame
Definition bmp3_defs.h:732
uint8_t frame_not_available
Definition bmp3_defs.h:759
uint16_t byte_count
Definition bmp3_defs.h:738
uint8_t req_frames
Definition bmp3_defs.h:741
uint16_t start_idx
Definition bmp3_defs.h:744
uint32_t sensor_time
Definition bmp3_defs.h:753
uint8_t config_err
Definition bmp3_defs.h:750
uint8_t config_change
Definition bmp3_defs.h:756
uint8_t * buffer
Definition bmp3_defs.h:735
uint8_t parsed_frames
Definition bmp3_defs.h:747
bmp3 fifo configuration
Definition bmp3_defs.h:767
uint8_t down_sampling
Definition bmp3_defs.h:784
uint8_t stop_on_full_en
Definition bmp3_defs.h:772
bmp3 interrupt pin settings
Definition bmp3_defs.h:688
bmp3 interrupt status flags
Definition bmp3_defs.h:637
uint8_t fifo_wm
Definition bmp3_defs.h:639
uint8_t fifo_full
Definition bmp3_defs.h:642
bmp3 odr and filter settings
Definition bmp3_defs.h:602
Quantized Trim Variables.
Definition bmp3_defs.h:803
Register Trim Variables.
Definition bmp3_defs.h:564
bmp3 sensor status flags
Definition bmp3_defs.h:621
uint8_t drdy_press
Definition bmp3_defs.h:626
uint8_t drdy_temp
Definition bmp3_defs.h:629
bmp3 device settings
Definition bmp3_defs.h:707
uint8_t op_mode
Definition bmp3_defs.h:709
uint8_t temp_en
Definition bmp3_defs.h:715
uint8_t press_en
Definition bmp3_defs.h:712
struct bmp3_int_ctrl_settings int_settings
Definition bmp3_defs.h:721
struct bmp3_adv_settings adv_settings
Definition bmp3_defs.h:724
struct bmp3_odr_filter_settings odr_filter
Definition bmp3_defs.h:718
bmp3 status flags
Definition bmp3_defs.h:669
struct bmp3_sens_status sensor
Definition bmp3_defs.h:674
struct bmp3_err_status err
Definition bmp3_defs.h:677
uint8_t pwr_on_rst
Definition bmp3_defs.h:680
struct bmp3_int_status intr
Definition bmp3_defs.h:671
bmp3 sensor structure which comprises of un-compensated temperature and pressure data.
Definition bmp3_defs.h:882
uint64_t pressure
Definition bmp3_defs.h:884
int64_t temperature
Definition bmp3_defs.h:887