36 #include "generated/airframe.h"
41 #define IMU_UM6_BUFFER_LENGTH 32
42 #define IMU_UM6_DATA_OFFSET 5
43 #define IMU_UM6_LONG_DELAY 4000000
45 #define IMU_UM6_COMMUNICATION_REG 0x00
46 #define IMU_UM6_MISC_CONFIG_REG 0x01
47 #define IMU_UM6_GET_FIRMWARE_CMD 0xAA
48 #define IMU_UM6_ZERO_GYROS_CMD 0xAC
49 #define IMU_UM6_RESET_EKF_CMD 0xAD
50 #define IMU_UM6_GET_DATA 0xAE
51 #define IMU_UM6_SET_ACCEL_REF 0xAF
52 #define IMU_UM6_SET_MAG_REF 0xB0
54 #define IMU_UM6_GYRO_PROC 0x5C
55 #define IMU_UM6_ACCEL_PROC 0x5E
56 #define IMU_UM6_MAG_PROC 0x60
57 #define IMU_UM6_EULER 0x62
58 #define IMU_UM6_QUAT 0x64
struct UM6Packet UM6_packet
arch independent UART (Universal Asynchronous Receiver/Transmitter) API
Dispatcher to register actual AHRS implementations.
uint8_t uart_getch(struct uart_periph *p)
void UM6_packet_parse(uint8_t c)
uint16_t uart_char_available(struct uart_periph *p)
Check UART for available chars in receive buffer.
static void imu_um6_event(void)
#define IMU_UM6_BUFFER_LENGTH
volatile uint8_t UM6_imu_available
uint8_t msg_buf[IMU_UM6_BUFFER_LENGTH]
void imu_um6_periodic(void)
struct FloatEulers UM6_eulers
struct FloatQuat UM6_quat
Inertial Measurement Unit interface.
void UM6_packet_read_message(void)
enum UM6Status UM6_status
void imu_um6_publish(void)