查看: 4759|回复: 9

[原创] 【KL25】低功耗定时器之寄存器操作

[复制链接]

该用户从未签到

27

主题

157

帖子

0

中级会员

Rank: 3Rank: 3

积分
465
最后登录
2015-6-20
发表于 2015-6-11 10:54:03 | 显示全部楼层 |阅读模式

编译环境:keil5.0以上版本
烧写方式:Jlink
参考的帖子:http://bbs.elecfans.com/jishu_467037_1_1.html

这几天晚上一直在研究低功耗定时器(LPTMR),今天就把自己所了解的简单说说.


低功耗定时器,顾名思义,这个定时器的功耗非常小,在很多模式下比如停止、运行、等待、低漏模式下依然可以正常运行,在调试模式下则只能运行脉冲计数器。


这里我只说说定时计数器,关于脉冲计数器我没有过多了了解,这里我就不多介绍了。只是计数器稍微研究了一下。欢迎大家前来纠错。


(一)允许软件访问低功耗定时器
         说白一点,就是和打开IO时钟的原理,是一样的,这里允许软件访问,应该就是允许我们对低功耗定时器进行编程。
         具体操作:SIM_SCGC5 的D0位写入1
(二)配置低功耗定时器模块
怎么配置?当然就是操作寄存器了,接下来我们就稍微讲解一下低功耗定时器的一些寄存器。
         (1)低功耗定时器的控制状态寄存器(LPTRM0_CSR)

TMS:我们这里选用的是定时计数器,所以这里默认为0就可以了。(1:脉冲计         数器)
TCF:定时器比较标志,当CNR(计数寄存器)的值增加到和CMR(比较寄存器)一样时,并且CNR再增加时,该位自动置1。当该位写1时,或者LPTRM被禁用时,该位自动清0.
TIE:定时器中断使能。这里设置为1。当该位置1时,只要TCF置1,低功耗定时器将产生一个中断请求。这里特别注意,是产生中断,最终能否允许该中断产生,还要取决于NVIC的设置。
TPP和TPS是和脉冲计数器有关的,这里我们不用去理会。
TFC:注意不要和TCF混淆了。该位只有LPTMR禁用的时候才允许设置。
我们这里设置为0,就是说,只要TCF置位,CNR就会复位。(1:只有CNR溢出的时候才会复位)
TEN:1-使能LPTMR 0:禁止LPTMR
       (2)低功耗定时器预分频寄存器



这三位我们都需要用到
PRESCALE:预分频值,默认是0000:2 这里我们选择0001:4
PBYP:1-PRESCALE 的预分频值是有效的, 0:预分频器被旁路,预分频值无效,其实就相当于预分频值为1,时钟源没有被分频
PCS:预分频器时钟源选择,这里我多说一点。这个占了2bit也就是由四种模式,具体如下图


这里我们选的是00 默认值即可,就是MCGIRCLK.
那么问题来了,MCGIRCLK的时钟频率是多少?


从图上不难发现MCGIRCLK的时钟源由两个,一个是4MHZ的IRC,另一个是32KHZ的IRC,那么这两个到底选择哪一个?
这个是由MCG_C2控制寄存器决定D0位(IRCS)决定的,该位的描述如下:内部时钟参考选择,为内部时钟在高速和低速时钟之间选择一个时钟参考源。0:低速时钟,也就是我们的32KHZ。  1:高速时钟,也就是4MHZ。
所以在选择MCGIRCLK作为预分频器的时钟源,要特别注意这一点,当然我选用的是高速时钟4MHZ。那么是不是MCGIRCLK就是4MHZ?
答案当时不是的,图上特别注意那个FCRDIV,也就是说4MHZ的高速时钟出来以后得陷阱股FCRDIV的预分频,在CG(时钟门,这里经过系统时钟的初始化后默认是允许的的,这个初始化在system_MKL25Z4.c文件中)允许的情况下,才会输出MCGIRCLK。
那么问题又来了FCRDIV是多少?FCRDIV是由MCG_SC控制的,其默认值是001,对应的分频值是2,所以经FCRDIV后,4MHZ就变成了2MHZ,在经过低功耗定时器的预分频器预分频后(上面我们提到预分频值设为4),就成了0.5MHZ。
(3)LPTMR0_CMR和LPTME_CNR寄存器这里我就不多讲解了,这个我想大家都明白。那么0.5MHZ的时钟每振荡一次,CNR加1,当和CMR中设置的值相等并且再增加时,TCF置位,发送中断请求。
还有一个时间的计算公式T=(N+1)/f,T:是我们需要的时间,N是LPTMR_CMR中设置的值,f是我们最终计算出的时钟频率。
实验中CMR设置成9999,那么T=10000/50000 0=1/50=0.02S 产生一次断。


大体的程序思路每隔1S让三色led灯循环亮起:
(1)初始化三色led灯
(2) 允许软件访问低功耗定时器,初始化并且使能低功耗定时器
(3)在NVIC中设置LPTMR的中断优先级并且使能该中断
(4) 编写中断函数,使得三个led灯循环点亮
实验现象:反正我的板子是可以的,你也下载进去试试呗,哈哈附上源码

LPTMR0.rar

387.05 KB, 下载次数: 13, 下载积分: 威望 1

回复

使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2015-6-11 11:06:04 | 显示全部楼层
    很不错的教程,感谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-12 10:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    386

    帖子

    0

    高级会员

    Rank: 4

    积分
    541
    最后登录
    2018-6-28
    发表于 2015-6-11 12:15:48 | 显示全部楼层
    教程很详细
    falajf
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24

    主题

    502

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1363
    最后登录
    1970-1-1
    发表于 2015-6-11 12:52:32 | 显示全部楼层
    不错 ,多谢楼主分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2015-6-11 16:56:28 | 显示全部楼层
    谢谢分享
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16697
    最后登录
    1970-1-1
    发表于 2015-7-29 23:39:22 | 显示全部楼层
    学习下
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-14 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    63

    主题

    605

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1783
    最后登录
    2016-11-14
    发表于 2015-8-7 09:57:46 | 显示全部楼层
    我觉得你使用这个低功耗定时器,应该突出他的低功耗使用情况,你这样的功能,普通的TPM定时器也可以实现。没有突出低功耗的使用情况是怎样的呢》》》
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-10-20 11:32
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    12

    主题

    108

    帖子

    0

    高级会员

    Rank: 4

    积分
    545
    最后登录
    2022-3-1
    发表于 2016-11-9 12:14:17 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情

    2016-10-20 11:32
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    12

    主题

    108

    帖子

    0

    高级会员

    Rank: 4

    积分
    545
    最后登录
    2022-3-1
    发表于 2016-11-9 12:14:50 | 显示全部楼层
    留个名
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-7-2 13:42
  • 签到天数: 31 天

    连续签到: 1 天

    [LV.5]常住居民I

    12

    主题

    253

    帖子

    0

    高级会员

    Rank: 4

    积分
    576
    最后登录
    2020-4-7
    发表于 2016-11-14 13:36:19 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 19:32 , Processed in 0.104530 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表