首先熟悉一下NRF51822,这一篇文章讲得不错,链接如下:
http://wenku.baidu.com/link?url=JNSJuhxNtMn3HJg6q5rETABXbejF_dallu8CkGzQCb1azNtVv5MJeYbrI26KCl4RrPaq0C41wqkeDihF9RnG577vEhHY993ZksVlSV6FHV_
定时器简介
定时器可谓是熟悉一个芯片主频之后第二个要熟悉的模块。
51822的Timer/Counter结构如下图所示:
时钟源
- 51822的定时器的时钟源默认是是HFCLK,也就是16MHz。
- 可以通过预分频PRESCALER来降低时钟频率,公式是:timer时钟频率=16M/2^PRESCALER;
- 这里可能有个疑问,上面的图解中不是有两个时钟源 16M和1M吗,怎么这个公式只能通过16M来分频获得timer时钟。 这是因为51822为了降低功耗内部自动 做了时钟源切换,当 Ftimer <= 1M时会自动切换成1M时钟源
举两个例子解释下
- 如果需要timer的时钟为 4M,那么4 = Ftimer = 16M/2^2
即我们只需设置分频寄存器 PRESCALER为2,就能或得4M的时钟给timer了 - 当需要timer的时钟为500Khz时,根据公式 我们设置PRESCALER寄存器的值为5,
- 如果需要timer的时钟为 4M,那么4 = Ftimer = 16M/2^2

本文详细介绍了NRF51822芯片的定时器模块,包括时钟源、工作模式、位宽、寄存器设置以及如何通过中断实现定时功能。通过实例展示了如何设置定时器以实现1秒间隔的中断,同时讨论了定时器在不同模式下的工作原理,以及在实际应用中可能出现的问题和解决方案。
最低0.47元/天 解锁文章
9560

被折叠的 条评论
为什么被折叠?



