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>
#include <infuse/drivers/imu/data_types.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  infuse_imu_api
struct  imu_linear_downsample_scaled_state
 State for imu_linear_downsample_scaled. More...

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.