本文简要介绍一下云途的lptmr外设(Low Power Timer)
lptmr可工作于所有功耗模式,lpTMR中断产生时可从任意低功耗模式中唤醒(在进入低功耗模式之前,须先将 sircDeepSleepEnable 和 sircPowerDownEnable 设为 true)
CTRL(模块控制), PRS(时钟分频),DIE(DMA请求及中断控制),STS(中断标志), CMP(比较值),LCNT(锁存计数值), CNT(当前计数值)
以云途HA01为例,通过HA RM手册查表可知,lpTMR的外设时钟源可以选外设功能时钟, 外设功能时钟可由用户自行配置。
lpTMR 的计数器大小为 16bit
可以通过CTRL[TMODE]位来配置是否开启自由运行模式,自由运行模式(CTRL[TMODE] 置 1,计数器在计数溢出时重置)和普通模式(CTRL[TMODE] 置 0,计数器在达到比较值且继续增加时重置)。计数模式可以选择脉冲计数或时间计数。
如果选择时间计数器模式,计数单元可以选择MICROSECONDS 或 TICKS。在YCT工具中点点点就能配置。这里必须要给云途点个赞。可以说是非常方便了。
Demo中使用Lptmr 设定了一个周期 1S 的中断。 时钟选用的外部晶振(24M)。分频值 512, Compare value 为 46874。46774*512=23,999,488(约等于 24M):
如果需要脉冲输入模式,lpTMR 可通过 CTRL[PINSEL] 和CTRL[PINPOL] 来选择引脚以及配置引脚极性。lpTMR 工作在脉冲计数模式时不受计数单位的影响,单位配置为 MICROSEDONDS 和配置为 TICKS 具有同等效果。
补充一个小细节:
“W1C“表示”写1清零”