EFM32 Giant Gecko Software Documentation  efm32gg-doc-5.1.2
imu_math.c File Reference

Detailed Description

Inertial Measurement Unit Fusion driver math routines.

Version
5.1.1

License

Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com

This file is licensed under the Silicon Labs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file imu_math.c.

#include <stdint.h>
#include <stdbool.h>
#include "thunderboard/imu/imu.h"

Go to the source code of this file.

Functions

void IMU_matrixMultiply (float c[3][3], float a[3][3], float b[3][3])
 Multiplies two 3x3 matrices. More...
 
void IMU_normalizeAngle (float *a)
 Normalizes the angle ( -PI < angle <= PI ) More...
 
void IMU_vectorAdd (float r[3], float a[3], float b[3])
 Adds two vectors. More...
 
void IMU_vectorCrossProduct (float r[3], float a[3], float b[3])
 Calculates the cross product of two vectors. More...
 
float IMU_vectorDotProduct (float a[3], float b[3])
 Calculates the dot product of two vectors. More...
 
void IMU_vectorNormalizeAngle (float v[3])
 Normalizes the angle of a vector. More...
 
void IMU_vectorScalarMultiplication (float r[3], float v[3], float scale)
 Multiplies a vector by a scalar. More...
 
void IMU_vectorScale (float v[3], float scale)
 Scales a vector by a factor. More...
 
void IMU_vectorSubtract (float r[3], float a[3], float b[3])
 Subtracts vector b from vector a. More...
 
void IMU_vectorZero (float v[3])
 Sets all elements of a vector to 0. More...