Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
baro_scp_i2c.c
Go to the documentation of this file.
1
8#include "baro_scp_i2c.h"
9
10#include "mcu_periph/sys_time.h"
11#include "mcu_periph/i2c.h"
12#include "modules/core/abi.h"
13#include "led.h"
14
15#include "mcu_periph/uart.h"
16#include "pprzlink/messages.h"
18
19#ifndef SENSOR_SYNC_SEND
20#warning set SENSOR_SYNC_SEND to use baro_scp_i2c
21#endif
22
23
27
29
30#ifndef SCP_I2C_DEV
31#define SCP_I2C_DEV i2c0
32#endif
33
34#define SCP1000_SLAVE_ADDR 0x22
35
37{
38 /* switch to high resolution */
42}
43
48
64
66{
67
69
71
72 /* read two byte temperature */
75 if (baro_scp_temperature & 0x2000) {
76 baro_scp_temperature |= 0xC000;
77 }
79
80 /* start one byte msb pressure */
84 }
85
87
88 /* read one byte pressure */
90
91 /* start two byte lsb pressure */
95 }
96
98
99 /* read two byte pressure */
102 baro_scp_pressure *= 25;
103
105 float pressure = (float) baro_scp_pressure;
107#ifdef SENSOR_SYNC_SEND
109#endif
110
112 }
113
115 }
116}
Main include for ABI (AirBorneInterface).
#define BARO_SCP_SENDER_ID
#define SCP1000_SLAVE_ADDR
uint32_t baro_scp_pressure
uint8_t baro_scp_status
static void baro_scp_start_high_res_measurement(void)
void baro_scp_event(void)
void baro_scp_periodic(void)
void baro_scp_init(void)
#define SCP_I2C_DEV
struct i2c_transaction scp_trans
uint16_t baro_scp_temperature
#define SCP1000_DATARD16
#define BARO_SCP_RD_TEMP
#define BARO_SCP_UNINIT
#define BARO_SCP_IDLE
#define BARO_SCP_RD_PRESS_1
#define SCP1000_OPERATION
Definition baro_scp_i2c.h:6
#define SCP1000_TEMPOUT
#define BARO_SCP_RD_PRESS_0
#define SCP1000_HIGH_RES
Definition baro_scp_i2c.h:9
#define SCP1000_DATARD8
uint32_t get_sys_time_usec(void)
Get the time in microseconds since startup.
volatile uint8_t buf[I2C_BUF_LEN]
Transaction buffer With I2C_BUF_LEN number of bytes.
Definition i2c.h:122
enum I2CTransactionStatus status
Transaction status.
Definition i2c.h:126
bool i2c_transmit(struct i2c_periph *p, struct i2c_transaction *t, uint8_t s_addr, uint8_t len)
Submit a write only transaction.
Definition i2c.c:202
bool i2c_transceive(struct i2c_periph *p, struct i2c_transaction *t, uint8_t s_addr, uint8_t len_w, uint16_t len_r)
Submit a write/read transaction.
Definition i2c.c:222
@ I2CTransSuccess
transaction successfully finished by I2C driver
Definition i2c.h:57
I2C transaction structure.
Definition i2c.h:93
Architecture independent I2C (Inter-Integrated Circuit Bus) API.
arch independent LED (Light Emitting Diodes) API
uint16_t foo
Definition main_demo5.c:58
Architecture independent timing functions.
volatile uint32_t nb_sec
full seconds since startup
Definition sys_time.h:72
arch independent UART (Universal Asynchronous Receiver/Transmitter) API
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.