ADI 技术
直播中

刘丹

7年用户 1435经验值
私信 关注
[问答]

请问ADXL345中断没反应该如何配置中断

在Analog Device技术william hill官网 看到好多关于ADXL345的中断进不去该如何配置的问题,我现在调试也出现了类似你叙述的问题,对ADXL345芯片进行单击和双击检测时,按照数据手册进行如下初始化,以下是我的配置信息:

Write_345(0x2C,0x0A);   //速率设定为100
Write_345(0x2D,0x08);   //选择电源模式
Write_345(0x1D,0x30);   //设置THRESH_TAP                                      
Write_345(0x21,0x11);  //设置DUR
Write_345(0x22,0x22);   //latent寄存器的
Write_345(0x23,0xFF);   //window寄存器
Write_345(0x2A,0x07);// xyz全参与检测
Write_345(0x2E,0x00);   //设置中断
Write_345(0x2F,0x60);   //映射到INT2上
Write_345(0x31,0x0B);  //使中断高电平有效
Write_345(0x2E,0x60);    //使能 SINGLE_TAP DOUBLE_TAP 中断

现象:配置完,main函数直接判断相应引脚电平,用示波器显示该引脚信息,当使中断高电平有效,则 INT2 口一直高电平;使中断低电平有效,则 INT2 口一直低电平;敲击芯片,一直是持续高或低电平,是阈值不对,还是缺少什么其他配置。
第一次用该芯片,着急。。。 希望各位高手能给予指点!

回帖(3)

高淑贤

2018-8-18 08:03:13
我也准备用这个芯片。。。。
举报

刘悦竹

2018-8-18 08:12:42
可以考虑下面经验证过的代码:
buf[0] = XL345_RATE_100;    //Output Data Rate: 100Hz
xl345Write(1, XL345_BW_RATE, buf);
buf[0] = XL345_FULL_RESOLUTION;  //Data Format: +/-16g range, right justified,  256->1g
xl345Write(1, XL345_DATA_FORMAT, buf);
buf[0] = XL345_TAP_X_ENABLE | XL345_TAP_Y_ENABLE | XL345_TAP_Z_ENABLE;  //Enable Z Axis Tap Detection
xl345Write(1, XL345_TAP_AXES, buf);
buf[0] = 0x50;      //Tap Threshold:5G, 62.5mg/LSB
xl345Write(1, XL345_THRESH_TAP, buf);
buf[0] = 0x50;  //Dur:50ms, 625us/LSB, representing the maximum time
      //that an event must be above the THRESH_TAP threshold to qualify as a tap event
xl345Write(1, XL345_DUR, buf);
buf[0] = 0x20;  //Latent: 40ms, 1.25ms/LSB, interval between the first tap and the second tap
xl345Write(1, XL345_LATENT, buf);
buf[0] = 0xF0;  //Window: 300ms, 1.25ms/LSB, time window for a possible second tap event
xl345Write(1, XL345_WINDOW, buf);
buf[0] = XL345_SINGLETAP | XL345_DOUBLETAP; //INT_Enable: SINGLE TAP & DOUBLE TAP
xl345Write(1, XL345_INT_ENABLE, buf);
buf[0] = XL345_SINGLETAP | XL345_DOUBLETAP; //INT_Map: SINGLE TAP& DOUBLE TAP interrupt to INT2 pin, DOUBLE TAP interrupt to INT1 pin
xl345Write(1, XL345_INT_MAP, buf);
 
buf[0] = XL345_MEASURE;   //Power CTL: Measure mode
xl345Write(1, XL345_POWER_CTL, buf);
举报

刘悦竹

2018-8-18 08:25:05
附件是ADXL345的.h文件。
附件

举报

更多回帖

发帖
×
20
完善资料,
赚取积分