增强型定时器模块(ECT) ECT功能相当于高速的I/O口,由一个4位预分频器、一个16位自由运行计数器,8个16位IC/OC通道,2个16位脉冲累加器以及一个16位模数递减计数器组成。
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TEN
TSWAI
TSFRZ
TFFCA
0
0
0
0
TSCR1 寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM 方式下的行为,还包括标志的管理方式。TEN:定时器使能位,此外它还控制定时器的时钟信号源。要使用定时器模块的 IC/OC 功能,必须将 TEN 置位。
0:定时器/计数器被禁止,有利于降低功耗。
1:定时器/计数器使能,正常工作
2、计时器系统控制寄存器 2(TSCR2)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TOI
0
0
0
TCRE
PR2
PR1
PR0
TOI:定时器/计时器溢出中断使能。
0:中断被禁止。
PR2,PR1,PR0:计数器预分频选择。
这三位所决定的分频因子如下表所示。分频因子选择
PR2
PR1
PR0
PrescaleFactor
0
0
0
1
0
0
1
2
0
1
0
4
0
1
1
8
1
0
0
16
1
0
1
32
1
1
0
64
3、控制寄存器(TCTLl-TCTL4)
TCTLl-TCTL4 分为两组,分别对 IC 和 OC 电路进行设定,每组 16 个二进制位,每两个二进制位管理一个通道。其中 TCTLl、TCTL2 设定各个 OC 通道 匹配时的动作,包括切断 OC 与输出引脚的联系,而 TCTL3、TCTL4 设定 IC 响 应引脚的何种动作,包括禁止 IC 的响应。
TCTL3 寄存器偏移量:$000A
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
EDG7B
EDG7A
EDG6B
EDG6A
EDG5B
EDG5A
EDG4B
EDG4A
TCTL4 寄存器偏移量:$000B
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
EDG3B
EDG3A
EDG2B
EDG2A
EDG1B
EDG1A
EDG0B
EDG0A
可在任何时候读或写。
各个控制位的作用如下:
EDGnB、EDGnA 输入捕捉边沿控制位,这 8 对控制位(EDG7B、EDG7A—EDG0B、EDG0A)对输入捕捉的边沿检测电路进行设置。当二者同时为 0 时,IC 与输入引脚断开。
输入捕捉边沿检测电路设置
CnF:IC/OC 通道中断请求标志。
0:上次清除标志以来,IC/OC 通道没有有效动作。
1:IC/OC 通道已经出现动作。
以下是一段程序
void init_ECT(void){ TSCR2_PR = 3; // M_clock分频8 TIOS_IOS6 = 0; // T6口捕捉场同步信号 TCTL3_EDG6A = 1; // 场同步信号捕捉沿设置 TCTL3_EDG6B = 1; // 同时捕捉上升沿、下降沿 TIOS_IOS5 = 0; // T5口捕捉行同步信号 TCTL3_EDG5A = 1; // 行同步信号捕捉沿设置 TCTL3_EDG5B = 0; // 捕捉上升沿 TIE_C6I = 1; // 场同步信号中断禁止,由串口命令控制 TIE_C5I = 0; // 行同步信号中断禁止,在每一场中断中打开 TSCR1_TEN = 1; // 启动定时器 return;}
// 场同步中断#pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 14 T6OddEven(void) //场同步中断{ }
// 行同步中断#pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 13 T5RowSyn(void) //T5视频采集行同步中断{ }
EDGnB
EDGnA
边沿检测电路设置
0
0
禁止捕捉
0
1
捕捉上升沿
1
0
捕捉下降沿
1
1
上升沿下降沿均捕捉
4 IC/OC 选择寄存器(TIOS)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
IOS7
IOS6
IOS5
IOS4
IOS3
IOS2
IOS1
IOS0
TIOS 寄存器用于指定各个通道的功能,即工作于 IC 还是 OC 方式。当某位 IOSn=0 时,对应的通道 n 为输入捕捉(1C)通道,否则当 IOSn=1 时,通道 n为输出比较(OC)通道。其中的各位可以在任何时候写入或读出。
5 计时器中断使能寄存器(TIE)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
C7I
C6I
C5I
C4I
C3I
C2I
C1I
C0I
如果将 TIE 中的某位清 0,相应的标志位就不能引起硬件中断。如果被置 1,相应的标志位就可以引起中断。
6主定时器中断标志寄存器(TFLG1、TFLG2)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
C7F
C6F
C5F
C4F
C3F
C2F
C1F
C0F
TFLG1 对应 8 个 IC/OC 通道,当某 CnF=1 时说明对应的 IC/OC 通道有动作,表明该通道有中断事件发生
ECT实际上是一个16位的可编程计数器,它的基本时钟频率可以通过预分频器设置,用于产生波形输出,测量输入波形,统计脉冲个数,可以作为定时中断功能和独立时钟基准。
下面介绍一下用到的寄存器
1、定时器/计数器系统控制寄存器 1(TSCR1)