cun
This commit is contained in:
@ -1,57 +1,59 @@
|
||||
#ifndef LIS2DH12_H
|
||||
#define LIS2DH12_H
|
||||
#include "gSensor/gSensor_manage.h"
|
||||
// #include <stdatomic.h>
|
||||
#include "le_rcsp_adv_module.h"
|
||||
|
||||
// --- 物理常量定义 ---
|
||||
#define GRAVITY_EARTH 9.80665f // 地球重力加速度 (m/s^2)
|
||||
#define SAMPLING_PERIOD_S 0.2f // 采样周期 (对应于200ms的定时器)
|
||||
|
||||
// Constants
|
||||
#define GRAVITY_EARTH 9.80665f // m/s^2
|
||||
#define SAMPLING_PERIOD_S 2 // 采样周期,s
|
||||
#define LPF_ALPHA 0.8f // 低通滤波系数
|
||||
// --- 数据结构定义 ---
|
||||
|
||||
// 三轴数据结构体 (可用于加速度、速度、距离)
|
||||
typedef struct {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
} axis_info_xtell;
|
||||
|
||||
// 运动数据结构体,包含速度和距离
|
||||
typedef struct {
|
||||
axis_info_xtell velocity; // m/s
|
||||
axis_info_xtell distance; // m
|
||||
axis_info_xtell velocity; // 速度 (m/s)
|
||||
axis_info_xtell distance; // 距离 (m)
|
||||
} motion_data_t;
|
||||
|
||||
// --- API 函数声明 ---
|
||||
|
||||
// 定义可能的满量程范围
|
||||
typedef enum {
|
||||
SCALE_2G = 2,
|
||||
SCALE_4G = 4,
|
||||
SCALE_8G = 8,
|
||||
SCALE_16G = 16
|
||||
} scale_t;
|
||||
/**
|
||||
* @brief 初始化并配置LIS2DH12传感器
|
||||
* @return 0 表示成功, -1 表示失败
|
||||
*/
|
||||
unsigned char LIS2DH12_Config(void);
|
||||
|
||||
/**
|
||||
* @brief 核心计算任务,应由定时器周期性调用
|
||||
*/
|
||||
void xtell_i2c_test(void);
|
||||
|
||||
|
||||
unsigned char LIS2DH12_Config(void);
|
||||
char LIS2DH12_Check();
|
||||
unsigned char LIS2DH12_disable(void);
|
||||
void LIS2DH12_read_data(axis_info_t *sl_accel);
|
||||
void print_register_values();
|
||||
void LIS2DH12_reinit_fifo();
|
||||
// float convert_to_g(int16_t raw_value, scale_t scale);
|
||||
float convert_to_g(int16_t raw_value);
|
||||
void xtell_i2c_test();
|
||||
// --- 数据获取函数声明 ---
|
||||
|
||||
// 获取运动数据
|
||||
/**
|
||||
* @brief 获取计算好的运动数据(速度和距离)
|
||||
* @param data 指向 motion_data_t 结构体的指针,用于存放结果
|
||||
*/
|
||||
void get_motion_data(motion_data_t *data);
|
||||
|
||||
/**
|
||||
* @brief 获取当前的总加速度(包含重力),单位 m/s^2
|
||||
* @return axis_info_xtell 包含x,y,z轴总加速度的结构体
|
||||
*/
|
||||
axis_info_xtell get_current_accel_mss(void);
|
||||
|
||||
|
||||
//10位2补码转换
|
||||
int16_t convert_10bit_2s_complement(int16_t data);
|
||||
// typedef struct {
|
||||
// short x;
|
||||
// short y;
|
||||
// short z;
|
||||
// } axis_info_t;
|
||||
/**
|
||||
* @brief 获取当前移除重力后的线性加速度,单位 m/s^2
|
||||
* @return axis_info_xtell 包含x,y,z轴线性加速度的结构体
|
||||
*/
|
||||
axis_info_xtell get_linear_accel_mss(void);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user