首页 理论教育 定时器启动与停止同步

定时器启动与停止同步

时间:2023-06-26 理论教育 版权反馈
【摘要】:1)概述定时器可以通过32kHz时钟的上升沿实现同步的启动和停止。2)定时器停止同步定时器开始运行之后,即进入定时器的RUN模式。此时,定时器停止运行并且存储当前睡眠定时器值,且T2CTRL.STATE从1到0。3)定时器启动同步当定时器处于IDLE模式且T2CTRL.SYNC是1时,通过把1写入T2CTRL.RUN开始同步。若在启动同步前未执行同步停止操作,则定时器将加载一个不可预知的值。为了避免这种情况发生,应当首先使能定时器,再启动同步启动和停止功能。

定时器启动与停止同步

1)概述

定时器可以通过32kHz时钟的上升沿实现同步的启动和停止。注意,这个事件来自一个32kHz时钟信号,而该时钟与32 MHz的系统时钟同步。因此,有一个周期近似等于32kHz时钟周期。除非32kHz时钟和32MHz XOSC都运行且稳定,否则不能尝试同步的启动和停止。

在启动同步时,定时器要重新载入新计算出来的计数值和溢出值。

2)定时器停止同步

定时器开始运行之后,即进入定时器的RUN模式。当T2CTRL.SYNC是1时,可以通过将0写入T2CTRL.RUN来停止同步。当T2CTRL.RUN已经调整到0之后,定时器继续运行,直到32kHz时钟的上升沿采样为1为止。此时,定时器停止运行并且存储当前睡眠定时器值,且T2CTRL.STATE从1到0。(www.xing528.com)

3)定时器启动同步

当定时器处于IDLE模式且T2CTRL.SYNC是1时,通过把1写入T2CTRL.RUN开始同步。当T2CTRL.RUN已经置1后,定时器将保持IDLE模式,直到32kHz时钟的上升沿被检测出来。当这些发生时,定时器将首先计算新的值,用于16位定时器值和24位定时器溢出值,这个计算基于当前存储的睡眠定时器值和当前16位定时器值。新的定时器2值和溢出计数器值载入定时器后,定时器就进入RUN模式。T2CTRL.STATE=1表示模块正在运行。从32kHz时钟上升沿被取样起,同步启动过程经历了86个时钟周期。同步的启动和停止功能需要选择系统时钟频率为32 MHz。如果系统时钟频率选择为16 MHz,则需要给新的计算值添加一个偏移。

若在启动同步前未执行同步停止操作,则定时器将加载一个不可预知的值。为了避免这种情况发生,应当首先使能定时器,再启动同步启动和停止功能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈