定时器/计数器(TC)
ARM7系列芯片中定时器/计数器模块一般包括三个相同的16位定时器/计数器通道,每个通道可独立编程,通道通过驱动一个可编程内部中断信号来产生处理器中断。
工作时钟源
TC由电源管理控制器(PMC)驱动,使用定时器模块之前必须首先配置PMC模块以使能TC时钟。TC通过一条中断线与高级中断控制器(AIC)相连,若是在定时器处理模块添加中断处理程序,则处理中断之前需对AIC进行编程,然后再对TC模块进行配置。
TC的三个通道相互独立,但操作相同。每个通道有一个16位的寄存器,寄存器值在所选时钟的每个正沿处自增,当计数器的值增加为0xFFFF进而变成0x0000时,产生溢出,此时状态寄存器(TC_SR)中的COVFS位置位。
定时器/计数器的时钟选择方面,每个通道可独立选择内部或外部的时钟作为计数器时钟源。对于时钟源的选择可通过TC通道模式寄存器的TCCLKS位实现。另外,对于所选时钟信号的工作方式,可以通过TC_CMR寄存器的CLKI位来实现反转,即使用时钟负沿进行计数。当使用外部时钟作为计数器时钟源时,需要保证外部时钟电平的持续时间长于主机时钟周期。
工作模式及触发形式
TC的每个通道有两种工作模式可供选择:捕获模式及波形模式。工作模式的选择通过TC通道模式寄存器的WAVE位设定。两种工作模式下有三种较为通用的触发器,触发器的作用是复位计数器并启动计数器时钟。触发器类别如下:
一、软件触发器:每个通道均有一个软件触发器。通过设置TC_CCR中的SWTRG位使能。
二、SYNC:每个通道均有一个SYNC同步信号。当此信号使能时,该信号所触发的作用与软件触发器效果类似,通过控制TC_BCR使能所有