资源简介
基于mpu6050计步器算法
代码片段和文件信息
#define P_P_DIFF 1000 /* 波峰-波谷的差值,即3D阈值 */
#define RISING_EDGE 1 /* 上升沿状态 */
#define FALLING_EDGE 0 /* 下降沿状态 */
#define FAST_WALK_TIME_LIMIT_MS 200 /* ms */
#define SLOW_WALK_TIME_LIMIT_MS 10000 /* 10s 内没有走一步 结束计步 */
#define STEP_OK 7 /* 7步法则 */
unsigned int lastPos = 0; /* 旧数据 */
unsigned int newMax = 0 newMin = 0; /* 波峰-波谷 */
bool walkSta = FALSE; /* 获得一次峰值状态 */
bool walkOkSta = FALSE; /* 连续10s内走了7步 有效行走状态 */
bool pSta = RISING_EDGE; /* 3D数据波形状态 */
long lastTime = 0; /* 上一次 walkSta 的时间 */
unsigned char stepOK = 0; /* 初始计步门限 滤除干扰 */
unsigned long stepCount = 0; /* 步数值 */
/*****************************************************************
** input: 3 axis or angle
** output: step count
** user read:
3 axis is filter value.
******************************************************************/
unsigned long Step_Count(float axis0 float axis1 float axis2){
unsigned int nowPos = 0;
int ppDiff = 0;
int timeDiff = 0;
/* 获取3D IMU */
nowPos = (unsigned int)powf(sqrtf(axis0) +
- 上一篇:DSP的SVPWM产生
- 下一篇:跳过U8安装环境监测
评论
共有 条评论