ADXL345单双击检测
0赞
在如今的手机市场中,触屏手机已经几乎占据了整个手机市场。有了触屏手机就需要手机对单双击的识别。之前已经说过通过ADXL345对移动的识别,在这款加速度计中,也有对单双击的处理与识别。只要经过适当的配置就能实现了。先说下单双击是怎么是怎么实现的吧!单击识别的过程需要满足两个条件。一是敲击产生的加速度值高于门槛值,二是加速度的值高于门槛值,小于CLICK_TimeLimit的数值要求。当敲击同时满足这两个条件时,就可以判定为一次单击。而大于CLICK_TimeLimit的数值要求时,则不会有中断产生。
在检测出第一次单击的基础上,第二次单击的识别必须满足CLICK_Latency和CLICK_Windows设定的条件。只有第二次单击落在CLICK_Windows时间段内,才是一次有效的双击,否则只能判定为两次单击。CLICK_Latency是用来设定第一次单击被识别后的功能关闭时间的,它用来消除噪声加速度,防止误触发。通俗的说就是当接受一次点击后,在隔一段时间后的某一个时间段内是否能够检测到另一次高于该阈值的刺激,有就是双击。这也是为了防止当过长时间段两次单击变成一次双击。

当然这个过程中必须使用ADXL345的中断,在开始我们配置的程序中,程序没有配置中端是循环的,所以只有当程序执行到判断是否单双击的那个时间点的时候,才能执行判断,才能进入循环,而单片机的时钟频率很高,所以就无法在那个时间点进入循环,如果偶然进入循环,那么执行也是跳不出循环,一直都是死循环。只有配合int寄存器来设定中断信号,是通过中断管脚1或2的输出,通过中断通知的方式实现单双击功能的。
只要对寄存器进行相应的配置,有与运算与该输出进行计算,这样就能进入判断,计算出来是一则显示一次指示。不同的双击和单击指示不同,从而实现单双击。
检测结果:


