高级会员

- 积分
- 503
- 金钱
- 503
- 注册时间
- 2014-2-28
- 在线时间
- 7 小时
|
5金钱
我想检测撞击事件的话,看文档是说当使能Activity中断就可以,发生撞击之后,在加速度曲线中会产生一个很大的冲击,这个冲击可以通过ADXL345的Activity中断来检测,超过阀值就会中断。
Single_Write_ADXL345(XL345_INT_ENABLE,0 );
Single_Write_ADXL345(XL345_DATA_FORMAT,0X2B); //低电平中断输出,13位全分辨率,输出数据右对齐,16g量程
Single_Write_ADXL345(XL345_BW_RATE,0x0A); //数据输出速度为100Hz
Single_Write_ADXL345(XL345_POWER_CTL,0x08); //链接使能,测量模式
Single_Write_ADXL345(XL345_THRESH_ACT,g_set);
Single_Write_ADXL345(XL345_TIME_INACT, 20); //静止时间 阀值,比例因子 1sec/LSB
Single_Write_ADXL345(XL345_THRESH_INACT, (g_set-1) >0 ? (g_set-1):1);
Single_Write_ADXL345(XL345_FIFO_CTL, XL345_FIFO_MODE_STREAM+0x1f);//保存32个样本数据
Single_Write_ADXL345(XL345_ACT_INACT_CTL, XL345_INACT_Y_ENABLE\
|XL345_INACT_Z_ENABLE|XL345_INACT_AC| XL345_ACT_X_ENABLE\
|XL345_ACT_Y_ENABLE | XL345_ACT_Z_ENABLE | XL345_ACT_AC);
Single_Write_ADXL345(XL345_INT_MAP,0); //中断映射到INT1引脚
Single_Write_ADXL345(XL345_INT_ENABLE,XL345_INACTIVITY+XL345_ACTIVITY);//使能Activity Inactivity 中断,示波器量INT1 有输出信号,为什么会输出中断
Single_Write_ADXL345(XL345_OFSX,0);
Single_Write_ADXL345(XL345_OFSY,0);
Single_Write_ADXL345(XL345_OFSZ,0);
Multi_Read_ADXL345(0x39,XL345_DEVID,ADXL345Registers);//INT1引脚执行完这句代码之后,INT1的中断信号就没有了,但是,没过多久,再次出现中断信号,为什么呢???
1. 首先,撞击检测,使用Activity中断 从原理上 这样可以行么?
2. 使能中断之后,为什么老是有INT中断信号输出
有用过的大侠们请帮帮忙看看,小弟感激不尽
|
|