Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
imu.h File Reference

Specialised driver API for IMU devices. More...

#include <zephyr/kernel.h>
#include <zephyr/device.h>

Go to the source code of this file.

Data Structures

struct  imu_config
 IMU configuration struct. More...
 
struct  imu_config_output
 Configured IMU value. More...
 
struct  imu_sample
 
struct  imu_sensor_meta
 Metadata for each sub-sensor in a FIFO buffer. More...
 
struct  imu_sample_array
 FIFO read structure. More...
 
struct  infuse_imu_api
 
struct  imu_linear_downsample_scaled_state
 State for imu_linear_downsample_scaled. More...
 

Macros

#define IMU_SAMPLE_ARRAY_TYPE_DEFINE(type_name, max_samples)
 Create type that holds a given number of IMU samples.
 
#define IMU_SAMPLE_ARRAY_CREATE(name, max_samples)
 Create static buffer of IMU samples suitable for use with imu_data_read.
 

Functions

static int imu_configure (const struct device *dev, const struct imu_config *config, struct imu_config_output *output)
 Configure IMU for operation.
 
static int imu_data_wait (const struct device *dev, k_timeout_t timeout)
 Wait for FIFO interrupt from IMU.
 
static int imu_data_read (const struct device *dev, struct imu_sample_array *samples, uint16_t max_samples)
 Read samples from IMU.
 
static int imu_self_test (const struct device *dev)
 Run self-test functionality on the IMU.
 
static int16_t imu_accelerometer_1g (uint8_t full_scale)
 Convert a full scale range to an expected value for 1G.
 
static uint32_t imu_sample_period (const struct imu_sensor_meta *meta)
 Get the local ticks between samples in a buffer.
 
static uint16_t imu_sample_rate (const struct imu_sensor_meta *meta)
 Get the approximate sample rate of a buffer.
 
static k_ticks_t imu_sample_timestamp (const struct imu_sensor_meta *meta, uint8_t sample)
 Get the local tick counter of a given sample in a buffer.
 
int imu_linear_downsample_scaled (struct imu_linear_downsample_scaled_state *state, const struct imu_sample *input, uint16_t num_input)
 Downsample IMU samples to a new frequency using linear interpolation.
 

Detailed Description

Specialised driver API for IMU devices.

Author
Jordan Yates jorda.nosp@m.n@em.nosp@m.beint.nosp@m..com

SPDX-License-Identifier: FSL-1.1-ALv2

Driver API optimised for high datarate, FIFO buffered IMU sensors.