31#define USE_I2C (USE_I2C0 || USE_I2C1 || USE_I2C2 || USE_I2C3 || USE_I2C4)
32#define USE_SOFT_I2C (USE_SOFTI2C0 || USE_SOFTI2C1)
34#if PERIODIC_TELEMETRY && (USE_I2C || USE_SOFT_I2C)
138#if PERIODIC_TELEMETRY && (USE_I2C || USE_SOFT_I2C)
190 p->trans_insert_idx = 0;
191 p->trans_extract_idx = 0;
195#if PERIODIC_TELEMETRY && (USE_I2C || USE_SOFT_I2C)
int pprz_bsem_wait_timeout(pprz_bsem_t *bsem, float timeout)
Wait on semaphore no more than timeout.
volatile uint16_t pec_recep_cnt
volatile uint16_t smbus_alert_cnt
struct i2c_errors * errors
volatile uint16_t ack_fail_cnt
volatile uint16_t timeout_tlow_cnt
volatile uint16_t over_under_cnt
volatile uint16_t unexpected_event_cnt
volatile uint32_t last_unexpected_event
volatile uint16_t wd_reset_cnt
volatile uint16_t queue_full_cnt
struct i2c_transaction * trans[I2C_TRANSACTION_QUEUE_LEN]
volatile uint16_t miss_start_stop_cnt
volatile uint16_t arb_lost_cnt
static bool i2c_submit(struct i2c_periph *p, struct i2c_transaction *t)
Submit a I2C transaction.
bool i2c_transmit(struct i2c_periph *p, struct i2c_transaction *t, uint8_t s_addr, uint8_t len)
Submit a write only transaction.
void i2c_init(struct i2c_periph *p)
Initialize I2C peripheral.
enum I2CTransactionStatus i2c_blocking_receive(struct i2c_periph *p, struct i2c_transaction *t, uint8_t s_addr, uint16_t len, float timeout)
Submit a read only transaction and wait for it to complete.
bool i2c_receive(struct i2c_periph *p, struct i2c_transaction *t, uint8_t s_addr, uint16_t len)
Submit a read only transaction.
I2CTransactionStatus
I2C transaction status.
enum I2CTransactionStatus i2c_blocking_transmit(struct i2c_periph *p, struct i2c_transaction *t, uint8_t s_addr, uint8_t len, float timeout)
Submit a write only transaction and wait for it to complete.
enum I2CTransactionStatus i2c_blocking_transceive(struct i2c_periph *p, struct i2c_transaction *t, uint8_t s_addr, uint8_t len_w, uint16_t len_r, float timeout)
Submit a write/read transaction and wait for it to complete.
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.
@ I2CTransFailed
transaction failed
@ I2CTransRx
receive only transaction
@ I2CTransTx
transmit only transaction
@ I2CTransTxRx
transmit and receive transaction
I2C transaction structure.
static enum I2CTransactionStatus i2c_blocking_submit(struct i2c_periph *p, struct i2c_transaction *t, float timeout)
Architecture independent I2C (Inter-Integrated Circuit Bus) API.
static const struct usb_device_descriptor dev
Architecture independent timing functions.
int16_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint16_t _id, telemetry_cb _cb)
Register a telemetry callback function.
Periodic telemetry system header (includes downlink utility and generated code).
#define DefaultPeriodic
Set default periodic telemetry.
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.