ADXL345应用——计步器设计(主程序)
下面分享一下计步器的主程序代码,大家可以仔细分析一下,原理并不是很难,尤其是综合了ADXL345单双击检测、旋转检测、摇晃检测等等诸多功能后,如何应用如此小巧的一块芯片发挥出最大的实力。#include"main.h"#include"xl345.h"
发表于 2012/4/16 13:06:12
阅读(5503)
ADXL345应用——计步器设计(寄存器设置程序)
SPI通讯程序和OCM12864的显示程序与之前的一样,在此不再赘述。主要发一下ADXL345的寄存器设置和ADuC初始化的程序。在myxl345.c中,主要进行ADXL345的设置,软件滤波。#include"myxl345.h"#include"./ocm12864/ocm12864.h"extern
发表于 2012/4/16 13:01:23
阅读(5580)
ADXL345应用——计步器设计(低功耗)
ADXL345寄存器提供低功耗的应用。使用低功耗模式保存DATA_READY中断和FIFO功能,以便加速度数据的后处理。休眠模式提供低数据速率和功耗时,并不进行数据采集。但是,当休眠模式与AUTO_SLEEP模式和链接模式一起使用时,检测到静止时,器件可以自动切换到低
发表于 2012/4/13 21:16:15
阅读(5614)
ADXL345应用——计步器设计(软件实现)
经过之前对单双击,摇晃检测等功能的熟悉,在计步器设计中,我们把各种功能糅合在一起,实现计步器初始参数的输入。首先输入身高,LCD屏幕显示“inputhighcm”,等待输入,这里应用
发表于 2012/4/13 15:57:54
阅读(7630)
ADXL345应用——计步器设计(附加因素)
得到步伐参数后,我们可以由此计算出人走过的距离甚至消耗的卡路里。人的步距与人身高有关,如下表所示:每2s步数跨步(m/s)0~2身高/52~3身高/43~4身高/34~5身高/25~6身高/1.26~8身高>8身高X1.22秒的时间间隔可以利用采
发表于 2012/4/12 21:08:46
阅读(4466)
ADXL345应用——计步器设计(计步算法)
采集到加速度变化信号并进行滤波使其信号波形改善后,要考虑的是计步的算法。系统持续更新3轴加速度的最大值和最小值(在我们这组没有采用三轴加速度测量,仅采用了一个轴),每采样50次更新一次。平均值(Max+Min)/2称为“动
发表于 2012/4/12 20:24:59
阅读(14248)
ADXL345应用——计步器设计(软件滤波)
计步器采集到的加速度变化信号由于采样精度、采样频率等原因会有较大毛刺,在上一篇博客中有图示。在算法处理过程中容易发生“误判”,因此为了使数字信号波形变得平滑,需要一个数字滤波器。可以使用四个寄存器和一个求和单元,如下图所示
发表于 2012/4/12 20:04:52
阅读(7169)
ADXL345应用——计步器设计(基本原理)
本次夏令营的最后一个题目是计步器,综合了之前几个题目中用到的功能,可以说之前的题目就是为最后的题目做铺垫,首先进行芯片功能应用的熟悉,熟练使用ADuC7026的中断功能和SPI通信,ADXL345各项寄存器的设置,在此基础上完成计步器的设计。&n
发表于 2012/3/28 19:51:29
阅读(25815)
摇晃检测主程序
现在把摇晃检测的中断程序加入之前编写的旋转检测和单双击检测主程序中,就可以实现ADXL345多功能检测,为下一步做计步器奠定基础。#include"main.h"#include"xl345.h"#include"Common.h"#include"irq_arm.c"#include&qu
发表于 2012/3/8 10:09:54
阅读(2635)
ADXL摇晃检测
检测晃动与检测旋转十分类似,也是检测某一轴的加速度变化,继而判断晃动方向,y轴检测加速度变化,当芯片向左摇动时,检测到y轴加速度为正,输出显示“left”,加速度为负时,输出显示为“right”。寄存器设置与检测旋转类似,设置寄存器ACT
发表于 2012/3/8 10:06:43
阅读(2394)
单双击检测主程序
寄存器的设置在前几篇的程序代码中有写出,参考一下就好了。单双击检测的主程序代码在这里和大家分享一下,其实就是添加了一个中断程序,可以与旋转检测的主程序对比一下#include"main.h"#include"xl345.h"#include"Common.h"#incl
发表于 2012/3/6 16:37:47
阅读(2938)
ADXL345单双击检测
第二个题目是检测单双击动作ADXL345检测有效单击和双击的敲击中断功能如下图所示:设置双击事件的第一次敲击和第二次敲击事件的延迟时间,在此延迟时间内进行第二次有效敲击,检测到两次有效敲击则输出显示“doubletap”,若未检测到第二次敲击,
发表于 2012/3/6 16:16:51
阅读(29390)
旋转检测主程序
下面把进行旋转检测的主程序代码和大家分享一下#include"main.h"#include"xl345.h"#include"Common.h"#include"irq_arm.c"#include"myxl345.h"#include//ThreeAxisAccelerationFlag#defineX_CHANNEL0#defineY_
发表于 2012/3/3 16:26:25
阅读(4253)
对ADXL345寄存器的设置
在编写主程序之前,先建立C文件myxl345.c对寄存器进行设置,建立工程只需将该文件添加进去#include"myxl345.h"externunsignedintfifo_flag;externunsignedintr_data[];externlonglong_r_data[];externunsignedintxl345_all[];externlongmean_x;externlo
发表于 2012/3/2 19:48:00
阅读(3218)
ADXL345旋转检测
接下来完成的第一个题目是检测旋转,并显示旋转方向首先检测加速度计ADXL345输出x,y,z三轴倾角数据(1)读取寄存器DEVID的值,为0xE5,即器件ID,可知,ADXL345可正常工作。(2)设置寄存器POWER_CTL为0x08,唤醒加速度计并设置为测量状态。每个单轴加速
发表于 2012/2/28 11:13:41
阅读(3509)