已回答假定已回答

ADXL345中断设置问题!!!

myl593799546 在 2014-4-17 詢問的問題
最後回覆由Feng182於2016-12-4提供

重新问一个问题:这个传感器应该不能测试水平方向的旋转角度吧,希望推荐下你们公司得另外的传感器能测试水平方向旋转角度的传感器。

 

已经调通ADXL345的I2C驱动,但是现在想使用其终端功能,发现怎么也触发不了啊,我的程序设置部分如下

 

void Init_ADXL345(void)

{

  Single_Write_ADXL345(0x2D,0x00);   //开始设置前选择待机模式参考pdf24页

  Single_Write_ADXL345(0x2E,0x00);   //中断INT_ENABLE,设置前先关中断

  Single_Write_ADXL345(0x31,0x2B);   //0x0B测量范围,正负16g,右对齐,13位模式,INT_INVERT0x20中断低电平有效

  Single_Write_ADXL345(0x2C,0x0F);   //速率设定为3200HZ 参考pdf13页

 

  Single_Write_ADXL345(0x1E,0x00);   //X 偏移量 根据测试传感器的状态写入pdf29页

  Single_Write_ADXL345(0x1F,0x00);   //Y 偏移量 根据测试传感器的状态写入pdf29页

  Single_Write_ADXL345(0x20,0x05);   //Z 偏移量 根据测试传感器的状态写入pdf29页

 

  Single_Write_ADXL345(0x24,0x02);   //THRESH_ACT保存检测活动阀值; (62.5mg/LSB)*0xxx

  Single_Write_ADXL345(0x25,0x02);   //THRESH_INACT保存检测静止阀值; (62.5mg/LSB)*0xxx

  Single_Write_ADXL345(0x26,0x01);   //TIME_INACT检测静止时间阀值; (1s/LSB)*0xxx

  Single_Write_ADXL345(0x27,0xEE);   //ACT_INACT_CTL检轴使能控制活动和静止检测:高位0直流和门限比较,1与前值的差值和门限值比较

 

  Single_Write_ADXL345(0x2F,0x10);   //中断映射INT_MAP,1发送到INT2

  Single_Write_ADXL345(0x2E,0x18);   //中断INT_ENABLE,使能Activity

 

  Single_Write_ADXL345(0x2D,0x08);   //选择电源模式 测量模式 参考pdf24页

 

  Single_Read_ADXL345(0x2B);         //中断清零前,应读取ACT_TAP_STATUS寄存器

  Single_Read_ADXL345(0x30);         //清中断标志

}

 

然后我把中断1连接到单片机的IO口,在单片机的IO口中断中清中断,中断函数代码如下

 

HAL_ISR_FUNCTION( halKeyPort0Isr, P0INT_VECTOR )

{

  HAL_ENTER_ISR();

 

  if (HAL_KEY_SW_X_PXIFG & HAL_KEY_SW_6_BIT)//中断1接到IO口P06

  {

    halProcessKeyInterrupt();

    Single_Read_ADXL345(0x2B);         //清中断前需读取只读寄存器器0x2B ACT_TAP_STATUS来判断事件触发的第一轴

    Single_Read_ADXL345(0x30);         //清中断标志

  }

 

  if (HAL_KEY_SW_X_PXIFG & HAL_KEY_SW_7_BIT)//中断2接到IO口P07

  {

    halProcessKeyInterrupt();

    Single_Read_ADXL345(0x2B);         //清中断前需读取只读寄存器器0x2B ACT_TAP_STATUS来判断事件触发的第一轴

    Single_Read_ADXL345(0x30);         //清中断标志   

  }

 

  HAL_KEY_SW_X_PXIFG = 0;

  HAL_KEY_CPU_PORT_0_IF = 0;

 

  CLEAR_SLEEP_MODE();

  HAL_EXIT_ISR();

}

 

中断INT输出引脚都是用4.7K电阻上拉的,然后才连接到单片机的IO口,我的单片机是CC2530

結果