打印
[Kinetis]

【读书笔记6 探索定时器模块之PIT & LPTMR】

[复制链接]
2673|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
springvirus|  楼主 | 2013-10-25 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIT下有4个定时器。
其中最显著的特点就是PIT定时器是从LDVAL设定值向下计数到0,然后重载初值,会产生一个触发脉冲, 同时产生中断。
各个定时器的中断都可以使能和禁止(通过TCTRL中的TIE控制位)。通过CVAL可以读取 定时器当前的计数值。
若要重启定时器,得先禁止定时器,再使能。使能位在PIT_TCTRLn中的第0位TEN。
正在运行的定时器的计数周期可以被改变,首先禁止,写入新值,再使能定时器。
也可以在不重启定时器的情况下,对LDVAL写入新值,此值会在下次的触发中被装载。

【问题1: 在Figure 40-23到25中,都有trigger event,这个event是指使能TEN吗,还是什么其他触发?】
【问题2: 定时器计数溢出时产生的脉冲,在哪个特定IO输出,还是不输出?】

LPTMR可以配置成时间计数器或脉冲计数器。 工作模式:
1.运行模式
2.等待模式
3.停止模式
4.低功耗模式
5.调试模式
对这些模式的说明,都高度相似: 在xx模式下,LPTMR都继续正常运行,可以由中断请求配置来推出低功耗模式。
【问题3: Low leakage mode 与 Low power mode是否就是同一个模式?】
【问题4: LPTMR在何种条件下进入到何种模式运行?】

LPTMR的比较 当计数器值等于比较寄存器值时,会发生以下事件:
1.定时器比较标志位置位
2.中断使能的话,产生中断
3.产生硬件触发
4.若自由运行计数器位被清零的话,计数器将复位
LPTMR的计数 每有一次以下情况发生时,计数器会增加1
1.预分频器时钟(时间计数器方式,预分频器旁路)
2.预分频器输出(时间计数器方式,预分频器使能)
3.输入源有效(脉冲计数器方式,滤波器旁路)
4.滤波器输出(脉冲计数器方式,滤波器使能)
看到有说,计数器不能被初始化,但可以在任何时候被读出。
【问题5: 不能被初始化,那如何指定定时器的初值?】

LPTMR的硬件触发
定时器比较标志位置位的同时,硬件触发有效,可以在无需软件的干预下在接口产生硬件触发。
对于硬件触发有效的有效期时间,具体情况如下:
当比较寄存器值被清零且自由运行计数器位被清零,硬件触发在首次比较匹配时有效,且一直有效。
当比较寄存器值被置成非零值或者自由运行计数器位被置位,硬件触发在每次比较匹配时有效,在随后 的计数过程,变无效,应该就是一个脉冲,有效时间为一个计数周期。

相关帖子

沙发
FSL_TICS_ZJJ| | 2013-10-25 15:58 | 只看该作者
你好,我来回答你的几个问题:
1,根据reference manual中的一句话:Each time a timer reaches 0, it will generate a trigger pulse and set the interrupt flag.即每次定时器到0,都会产生一个触发信号,这个可以
做为ADC的触发信号。
2,你说的计数溢出产生的脉冲是指触发脉冲吗?那个是内部的触发信号。
3,用户手册204页,Table 7-1. Chip power modes 讲了各个模式是什么意思,这两种模式不是一种模式,代表的睡眠程度也不一样,LL模式相对VLP模式关掉了更多的模块。
4,LPTMR的英文是low power timer, 它可以工作在所有的功耗模式下,包括low leakage modes。不像其他定时器,在低功耗下就关掉不能使用了。
5, counter是一个随时在改变的值,它只是从0开始计数,直到计数计到COMPARE+1达到定时目的,也就是说你定时时间的设置是通过写COMPARE值来实现的。
希望能帮到你。下次提问的时候,建议标好具体问题的页码,谢谢。

使用特权

评论回复
板凳
springvirus|  楼主 | 2013-10-25 16:12 | 只看该作者
本帖最后由 springvirus 于 2013-10-25 16:16 编辑
FSL_TICS_ZJJ 发表于 2013-10-25 15:58
你好,我来回答你的几个问题:
1,根据reference manual中的一句话:Each time a timer reaches 0, it will  ...


问题1中,是figure40-23图中左侧的trigger event,指的什么
问题2中,是计数器到达0时,产生的脉冲,就是这句"Each time a timer reaches 0, it will generate a trigger pulse and set the interrupt flag",在哪里有输出呢?
问题4中,这几种模式如何进入,是MCU的相关状态控制位的设置吗

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2013-10-25 16:57 | 只看该作者
问题1中,是figure40-23图中左侧的trigger event,指的什么
答:就是指定时器counter到0时产生的触发信号状态。

问题2中,是计数器到达0时,产生的脉冲,就是这句"Each time a timer reaches 0, it will generate a trigger pulse and set the interrupt flag",在哪里有输出呢?
答:这是芯片内部的信号,不输出的,当然,如果你想自己输出的话,也可以在中断中翻转IO。这种在内部直接由触发信号,就可以更加高效的触发其他模块。

问题4中,这几种模式如何进入,是MCU的相关状态控制位的设置吗
答:你说的对,是通过配置MCU的寄存器来决定到底进入哪种状态,具体请查看第7章:power management 以及 第13章: Mode controller

使用特权

评论回复
5
springvirus|  楼主 | 2013-10-25 17:04 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-10-25 16:57
问题1中,是figure40-23图中左侧的trigger event,指的什么
答:就是指定时器counter到0时产生的触发信号状 ...

"这种在内部直接由触发信号,就可以更加高效的触发其他模块。"
那如何使用这个信号来触发其他模块,都可以触发哪些模块呢?

使用特权

评论回复
6
FSL_TICS_ZJJ| | 2013-10-25 17:20 | 只看该作者
本帖最后由 FSL_TICS_ZJJ 于 2013-10-25 17:29 编辑
springvirus 发表于 2013-10-25 17:04
"这种在内部直接由触发信号,就可以更加高效的触发其他模块。"
那如何使用这个信号来触发其他模块,都可 ...


DMA, ADC,PDB 具体如何触发,在相应的模块中的寄存器可以选择触发源的,直接选成PIT的trigger 就行了,其他相信信息,请查看对应模块!

使用特权

评论回复
7
springvirus|  楼主 | 2013-10-25 17:27 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-10-25 17:20
DMA, ADC,具体如何触发,在相应的模块中的寄存器可以选择触发源的,直接选成PIT的trigger 就行了,其他相 ...

谢谢!等看到这些外设时,注意下触发源的选择

使用特权

评论回复
8
KuMo_2011| | 2013-10-25 17:56 | 只看该作者
学习了

使用特权

评论回复
9
123de7| | 2013-10-25 18:02 | 只看该作者
支持一下!!!!

使用特权

评论回复
10
KuMo_2011| | 2013-10-25 18:21 | 只看该作者
分享一下
K60(Rev6-Ch40-PIT)(中文).pdf (528.1 KB)

使用特权

评论回复
11
64xiaodian| | 2016-1-27 17:30 | 只看该作者

谢谢楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

4552

帖子

14

粉丝