LibDriver BMP280
Loading...
Searching...
No Matches
driver_bmp280_shot.c
Go to the documentation of this file.
1
36
37#include "driver_bmp280_shot.h"
38
39static bmp280_handle_t gs_handle;
40
51{
52 uint8_t res;
53
54 /* link interface function */
66
67 /* set interface */
68 res = bmp280_set_interface(&gs_handle, interface);
69 if (res != 0)
70 {
71 bmp280_interface_debug_print("bmp280: set interface failed.\n");
72
73 return 1;
74 }
75
76 /* set addr pin */
77 res = bmp280_set_addr_pin(&gs_handle, addr_pin);
78 if (res != 0)
79 {
80 bmp280_interface_debug_print("bmp280: set addr pin failed.\n");
81
82 return 1;
83 }
84
85 /* bmp280 init */
86 res = bmp280_init(&gs_handle);
87 if (res != 0)
88 {
89 bmp280_interface_debug_print("bmp280: init failed.\n");
90
91 return 1;
92 }
93
94 /* set default temperatue oversampling */
96 if (res != 0)
97 {
98 bmp280_interface_debug_print("bmp280: set temperatue oversampling failed.\n");
99 (void)bmp280_deinit(&gs_handle);
100
101 return 1;
102 }
103
104 /* set default pressure oversampling */
106 if (res != 0)
107 {
108 bmp280_interface_debug_print("bmp280: set pressure oversampling failed.\n");
109 (void)bmp280_deinit(&gs_handle);
110
111 return 1;
112 }
113
114 /* set default standby time */
116 if (res != 0)
117 {
118 bmp280_interface_debug_print("bmp280: set standby time failed.\n");
119 (void)bmp280_deinit(&gs_handle);
120
121 return 1;
122 }
123
124 /* set default filter */
126 if (res != 0)
127 {
128 bmp280_interface_debug_print("bmp280: set filter failed.\n");
129 (void)bmp280_deinit(&gs_handle);
130
131 return 1;
132 }
133
134 /* set default spi wire */
136 if (res != 0)
137 {
138 bmp280_interface_debug_print("bmp280: set spi wire failed.\n");
139 (void)bmp280_deinit(&gs_handle);
140
141 return 1;
142 }
143
144 /* set shot mode */
145 res = bmp280_set_mode(&gs_handle, BMP280_MODE_SLEEP);
146 if (res != 0)
147 {
148 bmp280_interface_debug_print("bmp280: set mode failed.\n");
149 (void)bmp280_deinit(&gs_handle);
150
151 return 1;
152 }
153
154 return 0;
155}
156
166uint8_t bmp280_shot_read(float *temperature, float *pressure)
167{
168 uint32_t temperature_yaw;
169 uint32_t pressure_yaw;
170
171 /* read temperature and pressure */
172 if (bmp280_read_temperature_pressure(&gs_handle, (uint32_t *)&temperature_yaw,
173 temperature, (uint32_t *)&pressure_yaw, pressure) != 0)
174 {
175 return 1;
176 }
177
178 return 0;
179}
180
189{
190 /* close bmp280 */
191 if (bmp280_deinit(&gs_handle) != 0)
192 {
193 return 1;
194 }
195
196 return 0;
197}
driver bmp280 shot header file
uint8_t bmp280_set_filter(bmp280_handle_t *handle, bmp280_filter_t filter)
set filter
uint8_t bmp280_set_mode(bmp280_handle_t *handle, bmp280_mode_t mode)
set mode
uint8_t bmp280_read_temperature_pressure(bmp280_handle_t *handle, uint32_t *temperature_raw, float *temperature_c, uint32_t *pressure_raw, float *pressure_pa)
read the temperature and pressure data
uint8_t bmp280_deinit(bmp280_handle_t *handle)
close the chip
bmp280_interface_t
bmp280 interface enumeration definition
uint8_t bmp280_set_interface(bmp280_handle_t *handle, bmp280_interface_t interface)
set the interface
uint8_t bmp280_set_spi_wire(bmp280_handle_t *handle, bmp280_spi_wire_t spi)
set spi wire
uint8_t bmp280_set_pressure_oversampling(bmp280_handle_t *handle, bmp280_oversampling_t oversampling)
set pressure oversampling
uint8_t bmp280_set_addr_pin(bmp280_handle_t *handle, bmp280_address_t addr_pin)
set the iic address pin
bmp280_address_t
bmp280 address enumeration definition
uint8_t bmp280_set_standby_time(bmp280_handle_t *handle, bmp280_standby_time_t standby_time)
set standby time
uint8_t bmp280_init(bmp280_handle_t *handle)
initialize the chip
struct bmp280_handle_s bmp280_handle_t
bmp280 handle structure definition
uint8_t bmp280_set_temperatue_oversampling(bmp280_handle_t *handle, bmp280_oversampling_t oversampling)
set temperatue oversampling
@ BMP280_MODE_SLEEP
#define BMP280_SHOT_DEFAULT_FILTER
#define BMP280_SHOT_DEFAULT_STANDBY_TIME
#define BMP280_SHOT_DEFAULT_PRESSURE_OVERSAMPLING
#define BMP280_SHOT_DEFAULT_SPI_WIRE
uint8_t bmp280_shot_deinit(void)
shot example deinit
uint8_t bmp280_shot_read(float *temperature, float *pressure)
shot example read
uint8_t bmp280_shot_init(bmp280_interface_t interface, bmp280_address_t addr_pin)
shot example init
#define BMP280_SHOT_DEFAULT_TEMPERATURE_OVERSAMPLING
bmp280 shot example default definition
uint8_t bmp280_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
uint8_t bmp280_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t bmp280_interface_spi_init(void)
interface spi bus init
uint8_t bmp280_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t bmp280_interface_iic_deinit(void)
interface iic bus deinit
uint8_t bmp280_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
void bmp280_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t bmp280_interface_iic_init(void)
interface iic bus init
void bmp280_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t bmp280_interface_spi_deinit(void)
interface spi bus deinit