nRF51822定时器设置
一、nRF51822的时钟系统
nRF51822有两种时钟源:1、高频时钟HFCLK;2、低频时钟LFCLK。这两种时钟只有当系统处于System ON模式的情况下才可用。
低频时钟源
系统有三种低频时钟源:1、32.768kHz晶体振荡器;2、32.768kHz RC振荡器;3、32.768kHz合成时钟(从HFCLK合成的32.768kHz时钟)
二、定时器/计数器
1、时钟源启动
void HFCLK_init(void)
{NRF_CLOCK->HFCLKSTARTED=0;NRF_CLOCK->HFCLKSTART=0;while(NRF_CLOCK->HFCLKSTARTED==0) //HFCLK晶体振荡器开启时会产生一个HFCLKSTARTED事件
{//Do nothing}
}
2、定时器配置
void timer0_init(void)
{//设置TIMER0为定时器模式NRF_TIMER0->MODE=TIMER_MODE_MODE_Timer;//配置预分频寄存器,对时钟源HFCLK进行分频NRF_TIMER0->PRESCALER=9;//设置计数位宽,决定计数值的最大值NRF_TIMER0->BITMODE=TIEMR_BITMODE_BITMODE_16Bit;
}static void nrf_timer0_delay_ms(uint_fast16_t voloatile number_of_ms)
{//每次定时器开始计数前,都要将TIMER内部的计数器清零NRF_TIMER0->TASK_CLEAR=1;//2^9分频值后,TIMER的计数频率为31250Hz,也就是每32us tick一次。则1ms tick 31.25次,但是CC[0]寄存器不能存储小数,故采用下面方法NRF_TIMER0->CC[0]=number_of_ms*31;NRF_TIMER0->CC[0]+=number_of_ms/4;//启动定时器NRF_TIMER0->TASK_START=1;//等待对应的COMPARE[0]事件的发生while(NRF_TIMER0->EVENTS_COMPARE[0]==0){//COMPARE[0]事件发生之后,跳出循环}//清除COMPARE[0]事件,为下次定时做准备NRF_TIMER0->EVENTS_COMPARE[0]=0;//关闭定时器NRF_TIMER0->TASK_STOP=1;
}
nRF51822定时器设置相关推荐
- Nrf51822中设置128bit UUID service
Nrf51822中设置128bit UUID service Nrf51822中设置128bit UUID service uint32_tble_dajia_add_service(ble_daji ...
- html倒计时timer,JavaScript定时器设置、使用与倒计时案例详解
本文实例讲述了JavaScript定时器设置.使用与倒计时案例.分享给大家供大家参考,具体如下: 1.设置定时器 定时器,适用于定时执行的任务中.在BOM的window对象中,有这样的两个函数是用于设 ...
- 关于jquery定时器设置问题 ios定时器无法响应问题 ios 时间显示为NaN问题 优惠时间倒计时
设计时间为:"2019-12-17"发现安卓端和浏览器端,浏览器模拟器显示均没问题,但是ios 手机显示为NaN 解决办法 :把"2019-12-17"改为&q ...
- 51单片机c语言定时器程序,51单片机定时器设置入门与程序解析
89C51单片机有两个计数器T0和T1,每个计数器都是由两个8位的RAM 单元组成的,即每个计数器都是16 位的计数器,最大的计数容量是216=65536,记住是从0-65535. 其次.提供给定时器 ...
- 关于STM32的定时器设置
1.定义RCC时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); 2.定义时钟触发 TIM_TimeBaseInit(TIM2, & ...
- spring 定时器设置停止_单片机MSP430入门-理论⑦--定时器模块-定时器A②
单片机MSP430入门-理论⑦--定时器模块-定时器A② 上期大概给大家汇总介绍了,定时器模块中比较重要并且常用的定时器A,大概说了下定时器A的两种常用模式,比较模式和捕获模式 本期将继续介绍定时器A ...
- mysql查看是否开启定时器_Mysql 查看定时器 打开定时器 设置定时器时间
1.查看是否开启evevt与开启evevt. 1.1.MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态,如果是OFF或者0,表示是关闭的. show VARIABLES ...
- Linux 定时器设置
函数alarm设置的定时器只能精确到秒,而以下函数理论上可以精确到微妙: #include <sys/select.h> #include <sys/time.h> int g ...
- c51随机数不重复_单片机定时器设置不重复随机数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问我这个程序为什么不能不重复取随机数?怎么设置不让0出现 #include #include #define uchar unsigned char # ...
最新文章
- HTML5 离线存储之Web SQL
- 无线局域网安装与调试(Wireless LAN installation and commissioning)
- ProxySQL Cluster 概述
- hibernate的二级缓存
- [摘录]软件版本GA,RC,alpha,beta,Build 含义
- dataTables去掉搜索框,每页多少条框体,解决Cannot reinitialise DataTable问题,以及数据格式ajax等问题...
- 犯病的chorme(谷歌浏览器)之css加载失败
- 拼图游戏的设计与实现
- 设计模式--策略模式(strategy)
- dojochina的ExtJS视频教程学习笔记(二
- 维修频谱分析仪多少钱?简单告诉你,频谱分析仪维修实例报价
- solaris常用系统命令
- Linux 下安装交叉编译工具链
- 2022年自考专业(工商企业管理)电子商务概论练习题
- psd 解析 java_PSD解析工具实现(一)
- 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾 二
- Qt 获取控件位置坐标,屏幕坐标,相对父窗体坐标
- Hadoop纠删码(Erasure Coding)简介
- Java+spring+springmvc ssm432咖啡馆咖啡销售预定管理系统#毕业设计
- 【数位板常见问题】压感笔为什么没有压感了