定时器 各种定时器功能
定时器 功能 看门狗定时器 基本定时器 定时器 A 定时器 B 基本定时,当程序发生错误时执行一个受控的系统重启动。 基本定时,支持软件和各种外围模块工作在低频率、低功耗条件下。 基本定时,支持同时进行的多种时序控制、多个捕获、比较功能和多种输出 波形(PWM),可以以硬件方式支持串行通信。 A 灵 基本定时,功能基本同定时器 A,但比较定时器活,功能更强大。
TACTL 控制寄存器 15--10 9 8 7 SSEL1 SSEL0 ID1 未用 6 5 4 ID0 MC1 MC0 3 未用 2 1 0 CLR TAIE TAIFG SSEL1、SSEL0 选择定时器输入分频器的时钟源 Timer_A 时钟源 SSEL1 SSEL0 输入时钟源 说明 0 0 TACLK 用特定的外部引脚信号 0 1 ACLK 辅助时钟 1 0 SMCLK 子系统时钟 1 1 INCLK 见器件说明 ID1,ID0 输入分频选择
00 不分频 01 2 分频 10 4 分频 11 8 分频
MC1,MC0 计数模式控制位
00 停止模式 01 增计数模式 10 连续计数模式 11 增/减计数模式
CLR 定时器清除位
POR 或 CLR 置位时定时器和输入分频器复位。CLR 由硬件自动复位,其读出始终为 0。定时器在下一个有效输入沿开始工作。如果不是被清除模式控制暂停,则定时器以增计数模式开始工作。
TAIE 定时器中断允许位
0 禁止定时器溢出中断
6
1 允许定时器溢出中断
TAIFG 定时器溢出标志位
增计数模式: 当定时器由 CCR0 计数到到 0 时,TAIFG 置位。 连续计数模式:当定时器由 0FFFFH 计数到 0 时,TAIFG 置位。 增/减计数模式:当定时器由 CCR0 减计数到 0 时,TAIFG 置位。
TAR 16 位计数器
这是计数器的主体,内部可读写。
[1]修改 TIMWER_A:当计数时钟不是 MCLK 时,写入应该在计数器停止计数时写, 因为它与 CPU 时钟不同步,可能引起时间竞争。
[2]TIMER_A 控制位的改变:如果用 TACLK 控制寄存器中的控制位来改变定时器 工作,修改时定器应停止,特别是修改输入选择位、输入分频器和定时器清除位时。 输入时钟和软件所用的系统时钟异步可能引起时间竞争,使定时器响应出错。 CCTLx 捕获/比较控制寄存器 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CAPTMOD1-0 CCIS1-0 SCS SCCIx CAP OUTMODx CCIEx CCIx OUT COV CCIFx TIMER_A 有多个捕获比较模块,每个模块都有自己的控制寄存器 CCTLx CAPTMOD1-0 选择捕获模式
00 禁止捕获模式 01 上升沿捕获 10 下降沿捕获
11 上升沿与下降沿都捕获
CCISI1-0 在捕获模式中用来定提供捕获事件的输入端
00 选择 CCIxA 01 选择 CCIxB 10 选择 GND 11 选择 VCC
SCS 选择捕获信号与定时器时钟同步、异步关系
0 异步捕获 1 同步捕获
异步捕获模式允许在请求时立即将 CCIFG 置位和捕获定时器值,适用于捕获信 号的周期远大于定时器时钟周期的情况。但是,如果定时器时钟和捕获信号发生时 间竞争,则捕获寄存器的值可能出错。
在实际中经常使用同步捕获模式,而且捕获总是有效的。
SSCIx 比较相等信号 EQUx 将选择中的捕获、比较输入信号 CCIx(CCIxA,CCIxB,Vcc 和 GND)进行锁存,然后可由 SCCIx 读出。
CAP 选择捕获模式还是比较模式。
0 比较模式
7
1 捕获模式
注意:同时捕获和捕获模式选择
如果通过捕获比较寄存器 CCTLx 中的 CAP 使工作模式从比较模式变为捕获模式,
那么不应同时进行捕获;否则,在捕获比较寄存器中的值是不可预料的,推荐的指 令顺序为:[1]修改控制寄存器,由比较模式换到捕获模式。
[2]捕获 OUTMODx 选择输出模式
000 输出 001 置位
010 PWM 翻转/复位 011 PWM 置位/复位 100 翻转/置位 101 复位
110 PWM 翻转/置位 111 PWM 复位/置位
定时器时钟上升沿时 OUTx 在各模式下的状态
EQU0 EQUx 输出模式 OUTx 状态(或触发器输入端 D) 0 X X X(OUTx 位) X 0 OUTx(不变) 1 X 1 1(置位) 0 0 OUTx(不变) 0 1 /OUTx(与以前相反) 2 1 0 0 1 1 1(置位) 0 0 OUTx(不变) 0 1 1(置位) 3 1 0 0 1 1 1(置位) X 0 OUTx(不变) 4 X 1 /OUTx(与以前相反) X 0 OUTx(不变) 5 X 1 0 6 0 0 OUTx(不变) 0 1 1 1 0 1 /OUTx(与以前相反) 1 0 CCIx 捕获比较模的输入信号
捕获模式:由 CCIS0 和 CCIS1 选择的输入信号通过该位读出。 比较模式:CCIx 复位。
8
OUT 输出信号
0 输出低电平 1 输出高电平
如果 OUTMODx 选择输出模式 0(输出),则该位对应于输入状态。
COV 捕获溢出标志
0 输出低电平 1 输出高电平
[1]当 CAP=0 时,选择比较模式。捕获信号发生复位,没有使 COV 置位的捕获事件。
[2]当 CAP=1 时,选择捕获模式,如果捕获寄存器的值被读出再次发生捕获事件, 则 COV 置位。程序可检测 COV 来断定原值读出前是否又发生捕获事件。读捕获寄存器时不会使溢出标志复位,须用软件复位。
CCIFGx 捕获比较中断标志
捕获模式:寄存器 CCRx 捕获了定时器 TAR 值时置位。 比较模式:定时器 TAR 值等于寄存器 CCRx 值时置位。
CCRx 捕获/比较寄存器
15--0
在捕获比较模块中,可读可写。其中 CCR0 经常用作周期寄存器,其他 CCRx 相同。
TAIV 定器器 A 中断向量寄存器
15--5 4--1 0--0 中断向量 0 0 Timer_A 有两个中断向量,一个单独分配给捕获比较寄存器 CCR0,另一个作为 共用的中断向量用于定时器和其他的捕获比较寄存器。
CCR0 中断向量具有最高的优先级,因为 CCR0 能用于定义是增计数和增减计数模 式的周期。因此,他需要最快速度的服务。CCIFG0 在被中断服务时能自动复位。
CCR1-CCRx 和定时器共用另一个中断向量,属于多源中断,对应的中断标志 CCIFG1-CCIFGx 和 TAIFG1 在读中断向量字 TAIV 后,自动复位。如果不访问 TAIV 则不能自动复位,须用软件清除;如果相应的中断允许位复位(不允许中断), 寄存器,
则将不会产生中断请求,但中断标志仍存在,这时须用软件清除。
关于中断挂起和返回不包括处理约需要 11~16 个时钟周期。
TIMER_A 中断优先级 中断优先级 中断源 捕获/比较器 1 捕获/比较器 1 最高 捕获/比较器 x 缩写 CCIFG1 CCIFG1 CCIFGx 9
TAIV 的内容 2 4
最低 定时器溢出 没有中断将挂起 TAIFG1 10 0 比较器 A CACTL1 比较器 A 控制寄存器 1 7 6 5 4 CAEX CARESL CAREF1 CAREF0 3 CAON 2 CAIES 1 CAIE 0 CAIFG CAEX 比较器的输入端,控制比较器 A 的输入信号和输出方向。
CARSEL 选择内部参考源加到比较器 A 的正端或负端。
CAEX 和 CARSEL 的含义 CARSE CAEX 0 0 1 0 1 1 含义 内部参考源加到比较器的正端 内部参考源加到比较器的负端 内部参考源加到比较器的负端 内部参考源加到比较器的正端 CAREF1、CAREF0 选择参考源
0 使用外部参考源;
1 选择 0.25Vcc 为参考电压 2 选择 0.5Vcc 为参考电压
3 选择二极客电压为参考电压,必须见具体的芯片资料。
CAON 控制比较器 A 的打开和关闭
0 关闭比较器 1 打开比较顺
CAIES 中断触发沿选
择
0 上升沿使中断标志 CAIFG 置位 1 下降沿使中断标志 CAIFG 置位
CAIE 中断允许
0 禁止中断 1 允许中断
CAIFG 比较器中断标
志
0 没有中断请求 1 有中断请求
7
CACTL2 比较器 A 控制寄存器 2 6 5 4 3 10
2 1 0