16位TIMER_A的主要功能模块包括: 。一个可连续增计数至预定值并返回0的计数器,也可是其停止.。软件可选择的时钟源.
。 选定的时钟源可作1,2,4和8分频.
。5个捕获/比较寄存器.每个都有独立的捕获事件,即硬件和软件控制的2个捕获信号.
。5个输出模块,支持脉宽调制需要.
定时器操作: 模式控制 模式 具体操作
MC1 MC0 (TATCL寄存器4~5位)
0 0 停止 定时器暂停
0 1 增计数 定时器增计数到等于比较寄存器0的值
1 0 连续 定时器连续增计数
1 1 增/减计数 定时器增计数到等于比较寄存器0的值,然后减计数到0
输入分频控制位(TACTL6~7)
ID1 ID2 分频 说明
0 0 PASS 输入信号直通定时器
0 1 /2 输入信号2分频
1 0 /4 输入信号8分频
定时器的时钟源:
SSEL2 SSEL1 SSEL0 输入信号 说明
0 0 0 TACLK 用特定的外部引脚信号
0 0 1 ACL 用辅助时钟ACLK
0 1 0 MCLK 用系统时钟MCLK
0 1 1 INCLK 见器件说明
1 X X ---- 保留
捕获模式: 位于控制字CCTLX中的模式位CAPX的置位将选择捕获模式。 捕获模式用于时间时间的精确定位,她可以用在速度计算或时间测量中.若在选定的输入引脚上发生选定脉冲触发沿.则定时器计数的值将被复制到捕获寄存器CCRX中.完成捕获后。控制字CCTLX中的中断标志CCIFGX置位;。如果通用中断允许位GIE和相应的中断标志位CCIEX置位,则产生中断请求.复位表示在下一次捕获完成前捕获数据已被读取.如果捕获数据还未读取时第二次捕获数据已锁存,则寄存器CCTLX中的溢出位COVX置位,检查这一位可以使程序从失去同步状态中恢复.需要用软件来复位COVX.
CCRX_Int_hand ... ;中断处理
...
...
MOV &CCRX,RAM_Buffer
BIT #COV,&CCTLX ;BIT指令对各标志位的影响:N最高位为时置位,Z结果为0时置位,
;C结果非零时置位;V复位
JNZ Overflow_Hand ;JNZ非0跳转,溢出出错处理,否则正常处理
....
....
RETI
Overflow_Hand BIC #COV,&CCTLX
;复位捕捉溢出标志,恢复同步
....
....
RETI
定时器暂停时捕获应该停止.顺序应是先停止捕获功能,再停止定时器计数.捕获功能重新开始时,顺序应先开始捕获功能,再开始定时器计数.
比较模式: 如果控制字CCTLX中CAPX复位,则选择比较模式.这时所有的捕获硬件停止工作.如果定时器计数值等于比较寄存器X中的值,那么。位于控制字CCTLX中的中断标志CCIFX置位.。如果GIE和CCIEX置位,则产生中断请求.。EQUX信号输出到输出单元OUTX中.根据选定输出模式,信号可以是置位、复位、或将输出OUTX翻转(如果OUTMODX>0)当定时器值大于或者等于CCR0的值时,EUQ0信号为真;当定时器值等于相应的CCR1~CCR4的值时,EQU1~EQU4信号为真.
输出单元:输出单元支持PWM或者DAC应用
OUTMODX 模式 说明
000 输出模式 OUTX位的数据即OUTX信号
001 置位 比较信号EQUX使OUTX信号置位
010 PWM翻转/置位 比较信号EQUX使OUTX信号翻转,EQU0使OUTX信号复位
011 PWM置位/复位 比较信号EQUX使OUTX信号置位,EQU0使OUTX信号复位
100 翻转 比较信号EQUX使OUTX翻转
101 复位 比较信号EQUX使OUTX复位
110 PWM翻转/复位 比较信号EQUX使OUTX信号翻转,EQU0使OUTX信号置位
111 PWM复位/置位 比较信号EQUX使OUTX信号复位,EQU0使OUTX信号置位
输出从现有的电平开始,而与选定的模式无关.1.增计数模式:当定时器增计数到CCRX以及由CCR0计数到0时,OUTX信号根据选定的输出模式发生变化.2.连续计数模式:当定时器计数到CCRX和计数到CCR0时,OUTX信号根据选定的输出模式发生变化.3.增/减计数模式:当定时器增计数到CCRX和减计数到CCRX时,OUTX信号根据选定的输出模式发生改变.