添加文件
在工程目录下添加 accel.h; accel.c 两个文件和文件夹 , 这些文件可以直接从我的源码中复制过来 。
其中文件夹内是ST提供的的驱动代码(这个驱动库让我们不必麻烦的操作的寄存器 , 而是通过调用函数的方式来配置使用) , 但是我在里边增加了以下两个函数
//Activity/Inactivity recognition Functionsstatus_t LIS3DH_SetActivThreshold(u8_t ths);status_t LIS3DH_SetActivDuration(u8_t dur);
来使用活动检测功能 , 这个功能可以让芯片在持续一段时间内加速度值小于活动阈值时自动进入低功耗模式 。
然后就是 accel.h; accel.c 两个文件 , 这两个文件是对驱动的应用 。
修改main.c
打开main.c文件将代码修改为如下代码
#include "nrf_delay.h"#include "nrf_log.h"#include "nrf_log_ctrl.h"#include "nrf_log_default_backends.h"#include "accel.h"/*** @brief Function for application main entry.*/int main(void){int32_t ret;NRF_LOG_INIT(NULL);NRF_LOG_DEFAULT_BACKENDS_INIT();ret = ACCEL_init();if(ret != 0){NRF_LOG_ERROR("ACCEL_init fail %d", ret);}else{NRF_LOG_INFO("ACCEL_init ok");}bool isActiv = false;while (true){ACCEL_loop();if(ACCEL_is_activ()){if(!isActiv){isActiv = true;NRF_LOG_INFO("Activ");}}else{if(isActiv){isActiv = false;NRF_LOG_INFO("Inactiv");}}}}
程序中我们把的两个可编程中断引脚进行如下配置:
程序开始运行后首先初始化我们的 , 然后在主循环中执行函数 , 同时通过读取INT1来检测当前的活动状态并通过RTT输出 。
【1 基于J-Link的调试信息输出】在函数中通过读取INT2来确定当前是否有新的加速度数据产生 , 如果有则出发TWI读取事件 , TWI会异步的读取的三轴加速度输出寄存器 , 当读取完成后会调用accel.c文件中的函数 , 在函数中会通过RTT打印输出读取到的加速度值 。输出数据的频率就是我们在配置时配置的200Hz , 但是当芯片检测到非活动状态时会自动进入低功耗模式 , 此时输出数据的频率会降为固定的10Hz , 这些策略可以在的数据手册和应用手册中看到 。
- 不适合做双眼皮的眼型图片,什么眼型适合割双眼皮
- 蜡丸帛书的解释蜡丸帛书的出处及用法
- 不锈钢铆钉和铝铆钉的区别,不锈钢铆钉铆在不锈钢板上可以吗
- 狼心狗行的解释狼心狗行的出处及用法
- 联床风雨的解释联床风雨的出处及用法
- 不要坐晚上的飞机,小孩坐飞机要不要买票
- 龙血凤髓的解释龙血凤髓的出处及用法
- 不顺的时候怎样摸貔貅,摸了貔貅嘴怎么办
- 令人齿冷的解释令人齿冷的出处及用法
- 力所不逮的解释力所不逮的出处及用法