430F5529里的TA不是有7个捕获比较模块,TA0、TA1、TA2是干嘛的???
Viki Shi:
都是定时器,配置稍有不同
TA0 is a 16-bit timer and counter (Timer_A type) with five capture/compare registers
TA1 is a 16-bit timer and counter (Timer_A type) with three capture/compare registers
TA2 is a 16-bit timer and counter (Timer_A type) with three capture/compare registers
TB0 is a 16-bit timer and counter (Timer_B type) with seven capture/compare registers
yffy:
定时器A
TACCRx 比较模式 (用于输出和产生定时中断)
1、设置:CAP=0选择比较
2、输出信号:比较模式用于选择 PWM 输出信号或在特定的时间间隔中断。当 TAR 计数 到 TACCRx 的值时: a、中断标志 CCIFG=1; b、内部信号 EQUx=1; c、EQUx 根据输出模式来影响输出信号 d、输入信号 CCI 锁存到 SCCI 每个捕获比较模块包含一个输出单元。输出单元用于产生如 PWM 这样的信号。每个输出单元可以根据 EQU0 和 EQUx 产生 8 种模式的信号。
3、中断 TimerA 有 2 个中断向量: a、TACCR0 CCIFG 的 TACCR0 中断向量 b、所有其他 CCIFG 和 TAIFG 的 TAIV 中断向量 在捕获模式下,当一个定时器的值捕获到相应的 TACCRx 寄存器时, CCIFG 标志置位。 在比较模式下,如果 TAR 计数到相应的 TACCRx 值时,CCIFG 标志置位。软件可以清除或置 位任何一个 CCIFG 标志。当响应的 CCIE 和 GIE 置位时, CCIFG 标志就会产生一个中断。 c、TACCR0 CCIFG 标志拥有定时器 A 的最高中断优先级,并有一个专用的中断向量, 当进入 TACCR0 中断后,TACCR0 CCIFG 标志自动复位。 d、TACCR1 CCIFG, TACCR2 CCIFG, 和 TAIFG 标志共用一个中断向量。中断向量寄存器 TAIV 用于确定它们中的哪个要求响应中断。最高优先级的中断在 TAIV 寄存器中产生一个数字(见 寄存器说明),这个数字是规定的数字,可以在程序中识别并自动进入相应的子程序。禁止定时 器 A 中断不会影响 TAIV 的值。 对 TAIV 的读写会自动复位最高优先级的挂起中断标志。如果另一个中断标志置位,在结 束原先的中断响应后会,该中断响应立即发生。例如,当中断服务子程序访问 TAIV 时,如果 TACCR1 和 TACCR2 CCIFG 标志位置位,TACCR1 CCIFG 自动复位。在中断服务子程序的 RETI 命令执行后,TACCR2 CCIFG 标志会产生另一个中断。
TimerA的捕获模式
1、设置:CAP=1选择捕获, CCISx位设置捕获的信号源,CMx位选择捕获的沿,上升,下降,或上升下降都 捕获。
2、如果一个第二次捕获在第一次捕获的值被读取之前发生,捕获比较寄存器就会产生一个溢出逻辑,COV 位在此时置位,如图 8-11,COV 位必须软件清除。