本帖最后由 onlycook 于 2022-9-15 09:14 编辑
我想利用LSM6DSL的wakeup中断来实现对z轴加速度的检测。大致思路就是:设置WAKE_UP_THS中断阈值,当z轴加速度超过阈值时,产生WAKE_UP中断,并将其驱动至INT1引脚。主控通过检测INT1引脚的上升沿来计数。下图是我对相关寄存器的配置:
进行Debug时,得到的参数是下图这样的。impact_cnt默认是31,图中标错了。传感器是Z轴朝下放置的,大概一个g左右,正常应该是8500上下,但是Debug结果好像翻了一倍。而且阈值只有1/8个g,按理说应该超过了阈值,但是WAKE_UP_SRC(param[4])的状态一直是0,也没有产生中断。
如果将配置CTRL1_XL的代码注释掉,如下图,传感器Z轴的值Z_XL就正常了,但是同样没有产生中断,WAKE_UP_SRC的值也一直是0
按理说CTRL1_XL的值是改变频率的,可是为什么会让Z轴的值发生变化;而且明明Z轴的值超过了阈值,但是仍然没有产生中断。希望大神能指点我一下,跪谢。 |