一起学nRF51xx 8 -  Time

前言

Nrf518xx的TIMER有以下几部分组成(nrf51822有三个定时器--time0/1/2):

1)计数时钟源。有1M、16M 2种时钟源。

2)时钟源分频器。用来设置分频,范围是2的0-9次方。

3)定时/计数模式选择。用来配置TIMER工作在定时器模式还是计数器模式。

4)定时/计数器位数。8位、16位、24位、32位可选择。

5)CC[n]寄存器。CC是捕捉、比较的缩写。CC寄存器有4个。当执行CAPUTURETASK(捕捉任务)的时候,当前内部计数器的值将会立刻被拷贝到CC寄存器。

6)各任务、事件等。

7)当定时器值超过其最大值时,计数器寄存器将溢出,计时器将溢出自动从零开始。

 

TIMER有两种工作模式:定时模式和计数模式。当处于定时模式,我们称之为定时器;当

处于计数模式,我们称之为计数器。2种模式都可以通过START任务来启动;STOP任务来停止。执行STOP任务停止后的定时器,可以通过重新执行START任务来启动它。当TIMER处于定时模式的时候,TIMER内部计数器在时钟每个脉冲来临的时候计数一次,时钟的频率可以按以下公式计算fTIMER = 16 MHz / (2PRESCALER)。

 

当内部计数器的值跟预先设置到CC[n](n=1-3)里面的值相等的时候会触发相对应的COMPARE[n]事件,如果我们使能了中断,则会产生中断。

当TIMER处于计数模式的时候,TIMER内部计数器在COUNT引脚上每个脉冲来临的时候计数一次。

 

3个任务:

1)START:启动定时/计数器

2)STOP:停止定时/计数器

3)SHUTDOWN:让定时/计数器掉电,后续无法通过START来启动该定时/计数器,除非重新复位。

 

注意事项:

1)定时器/计数器只能在它们已经被停止的状态下才可以进行配置,否则会造成不可以预知的后果。

2)当处于定时模式的时候,假如fTIMER <=1MHZ,为节能,定时器会自动从PCLK1M时钟源获取计数脉冲,而不会使用PCLK16M时钟源。

 

本节将基于NRF51822芯片实现通过定时器实现对LED的精确控制,实现控制LED闪烁功能。

 

示例详解

基于硬件平台:nrf51822ek_tm开发板。

 

 

本示例所用的最小系统板原理图:

 

    1. 工程创建:
      1. 打开KEIL,新建一个空工程:Project->NewuVisionProject

工程名为nrfxx-time确认后按下图选择芯片为nrf51822_xxAA->ok

在弹出的对话框中勾选CMSIS中的CORE;Device中的Startup(后面有nrf51Series字样的);在nrf_device中勾选nrf_gpio, ,nrf_timer,nrf_err并在nrf_Libraries中勾选app_error,nrf_assert模块。

 

OK之后工程自动生成如下代码:

新建一个空白文档,保存为main.c,并加入工程中:

配置工程,选择使用MicroLIB库,可以减小程序体积:

加入NRF51定义,并选择化等级3,可以减小程序体积,但仿真运行时可能会出现与代码顺序不一致现象:

 

调试工具选择J-LINK,并将接口设置为SW口勾选下载程序后自动复位及运行:

 

 

    1. 工程代码
      1. OK之后在man.c中加入如下代码:

 

主函数执行完IO初始化,定时器初始化后就是执行死循环了,在中断服务函数里面, 执行清除中断标志、 清除内部计数寄存器的值、 翻转LED_BLUE_PIN等操作。把程序编译, 下载到开发板中, 开发板上的蓝灯会亮 1S 秒--灭 1S 循环。

 

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,会有不定期技术干货推出!!

文中源码资料下载,在公众号里给十三发消息:

下载|一起学nRF51xx 8

 

关注十三公众号

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值