当前位置:文档之家› 飞思卡尔单片机 DG128 Timer寄存器说明

飞思卡尔单片机 DG128 Timer寄存器说明

Timer寄存器说明
1、定时器/计数器系统控制寄存器1(TSCR1)
TSCR1 寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM 方式下的行为,还包括标志的管理方式。

其各位的意义如下:
TEN:定时器使能位,此外它还控制定时器的时钟信号源。

要使用定时器模块的IC/OC 功能,必须将TEN 置位。

如果因为某种原因定时器没有使能,脉冲累加器也将得不到ECLK/64 时钟,因为ECLK/64 是由定时器的分频器产生的,这种情况下,脉冲累加器将不能进行引脚电平持续时间的累加。

0:定时器/计数器被禁止,有利于降低功耗。

1:定时器/计数器使能,正常工作。

TSWAI:等待模式下计时器关闭控制位。

【注意】定时器中断不能用于使MCU 退出等待模式。

0:在中断等待模式下允许MCU 继续运行。

1:当MCU 进入中断等待模式时,禁止计时器。

TSFRZ:在冻结模式下计时器和计数器停止位。

0:在冻结模式下允许计时器和计数器继续运行。

1:在冻结模式下禁止计时器和计数器,用于仿真调试。

【注意】TSFRZ 不能停止脉冲累加。

TFFCA:定时器标志快速清除选择位。

0:定时器标志普通清除方式。

1:对于TFLGl($0E)中的各位,读输入捕捉寄存器或者写输出比较寄存器会自动清除相应的标志位CnF。

对于TFLG2($0F)中的各位,任何对TCNT 寄存器($04、$05)的访问均会清除TOF 标志;任何对PACN3 和PACN2 寄存器($22,$23)的访问都会清除PAFLG 寄存器($21)中的PAOVF 和PAIF 位。

任何对PACN1 和PACN0 寄存器($24,$25)的访问都会清除PBFLG 寄存器($21)中的PBOVF 位。

【说明】这种方式的好处是削减了另外清除标志位的软件开销。

此外,必须特别注意避免对标志位的意外清除。

2、计时器系统控制寄存器2(TSCR2)
寄存器偏移量:$000D
TOI:定时器/计时器溢出中断使能。

0:中断被禁止。

1:当TOF 标志被置位时发出硬件中断请求。

【注意】TOF标志位在TFLG中
TCRE:定时器/计数器复位使能。

该位在通道7 成功输出比较之后允许时钟计数器复位。

该操作模式类似于递增型计数器。

0:计数器复位禁止,计数器自由计数。

1:通道7 成功输出比较后计数器将被复位。

【说明】如果TC7=$0000 并且TCRE=1,TCNT 将继续保持$0000。

如果TC7=$FFFF 并且TCRE=1,当TCNT 从$FFFF 到$0000 之间被复位后TOF 将永远不被置位。

PR2,PR1,PR0:计数器预分频选择。

【说明】新设定的分频因子不会立即起作用,直到下一个触发沿到来那里所有预分频计数器值均为零。

3、控制寄存器(TCTLl-TCTL4)
TCTLl-TCTL4 分为两组,分别对IC 和OC 电路进行设定,每组16 个二进制位,每两个二进制位管理一个通道。

其中TCTLl、TCTL2 设定各个OC 通道匹配时的动作,包括切断OC 与输出引脚的联系,而TCTL3、TCTL4 设定IC 响应引脚的何种动作,包括禁止IC 的响应。

OMn、OLn 分别设定输出方式和输出电平,这8 对控制位(OM7、OL7---OMO、OL0)编码后用于指定通道比较成功后的输出动作。

如果每对当中至少有一个为1,对应引脚就固定为相应通道的输出,而与DDRT 中的对应位无关。

当二者同时为0 时,OC 与输出引脚断开。

输出比较动作设置
TCTL3 寄存器偏移量:$000A
TCTL4 寄存器偏移量:$000B
各个控制位的作用如下:
EDGnB、EDGnA 输入捕捉边沿控制位,这8 对控制位(EDG7B、EDG7A—EDG0B、EDG0A)对输入捕捉的边沿检测电路进行设置。

当二者同时为0 时,IC 与输入引脚断开。

【注意】为了使OMn、OLn 指定的引脚动作有效,OC7M 中的对应位必须清0。

若要使用16 位脉冲累加器A 和B,并使它们分别独立于IC/OC7 和IC/OC0,必须设置对应的IOSn:1、OMn=0、OLn=0,同时寄存器OC7M 中的OC7M7、OC7M0 位必须清0。

4、主定时器中断标志寄存器(TFLG1、TFLG2)
所示的TFLG1、TFLG2 为中断标志寄存器,其中TFLG1 对应8 个IC/OC 通道,当某CnF=1 时说明对应的IC/OC 通道有动作,表明该通道有中断事件发生。

TFLG2 只有一个标志位TOF,作为核心计数器的中断请求标志。

当TOF=1 时说明核心计数器溢出。

要清除某个标志位,只需向该位写1,向某位写0 不影响该位的状态。

当TSCR 中的TFFCA 位置位时,读IC 通道或写OC 通道($10-$1F)将自动清除该通道标志CnF,对TCNT 的任何访问将自动清除TFLG2。

CnF:IC/OC 通道中断请求标志。

0:上次清除标志以来,IC/OC 通道没有有效动作。

1:IC/OC 通道已经出现动作。

将寄存器ICSYS($2B)中的TFMOD 位和ICOVW 寄存器($2A)联合使用,可以使定时器在两次捕捉后才产生中断,而不是每次捕捉均产生动作。

两次捕捉结果分别在捕捉和保持寄存器里面。

TOF:定时器溢出标志,当16 位自由定时器从$FFFF 回滚到$0000 时,该位置位。

将$80 写入到TFLG2 将自动清除该位(写1清零)。

详见前面关于TMSK2 中TCRE 控制位的解释。

5、计时器中断使能寄存器(TIE)
可在任何时候读或写。

TIE 寄存器中的位与状态寄存器TFLG1 中的标志位相对应。

如果将TIE 中的某位清0,相应的标志位就不能引起硬件中断。

如果被置1,相应的标志位就可以引起中断。

C7I-C0I:输入捕捉/输出比较“x”中断使能。

6、IC/OC 选择寄存器(TIOS)
IC 还是OC 方式。

当某位IOSn=0 时,对应的通道n 为输入捕捉(1C)通道,否则当IOSn=1 时,通道n 为输出比较(OC)通道。

其中的各位可以在任何时候写入或读出。

【说明】上电后该寄存器默认为$00,TSCR 中的TEN 默认也为0,这时所有通道处于通用I/O 方式,将TEN 置位后各个通道进入IC 方式,要将某些通道设置成OC 方式,必须对TIOS 进行设置,即将有关位置1。

设置成OC 的通道其引脚具有降功率驱动功能,设置成IC 的通道具有内部上拉功能,但上电后均处于关闭状态,可以根据需要启用。

7、IC/OC 寄存器(TC0-TC7)
每个IC 或OC 通道都设置有一个16 位的寄存器,对于IC(输入捕捉)通道,当通道的边沿探测器检测到由EDGnA、EDGnB 指定的条件时,将自由定时器的值捕捉到寄存器TCn,随后程序可以读取和处理;对于OC(输出比较)通道,程序将预定的时刻写入到TCn,当自由定时器的值与其相等时,触发由OMn、OLn 所指定的输出动作。

定时器模块共有TC7-TC0 等8 个16 位IC/OC 寄存器。

TC0
TC1
TC2
TC3
TC4
TC5
TC6
TC7
8、定时器核心寄存器(TCNT)
TCNT 是递增计数器,它不停地对内部时钟信号计数、程序可随时读取,但在普通模式下禁止写入。

TCNT 应按字访问,分别访问高、低字节可能得到错误的结果。

【说明】在特殊模式下,TCNT 可写,但因为写操作与预分频器时钟不同步,TCNT寄存器写入后,其第一个周期可能是一个不同的值。

9、输出比较通道7 屏蔽寄存器(OC7M)
可在任何时候读或写。

前面已经说明,OC7 具有特殊地位,它匹配时可以直接改变其他7 个输出引脚的状态,并覆盖各个引脚原来的匹配动作结果,寄存器OC7M 决定哪些通道将处于OC7 的管理之下。

OC7M 中的各位与PORTT 口寄存器的各位一一对应。

当通过TIOS 将某个通道设定为输出比较时,将OC7M 中的相应位置1,对应
的引脚就是输出状态,与DDR 中的对应位的状态无关。

但OC7Mn 并不改变DDR 相应位的状态。

OC7M 具有更高的优先级,它优于通过TCTL1 和TCTL2 寄存器中的OMn 和OLn 设定的引脚动作,若OC7M 中某个位置1,就会阻止相应引脚上由OM 和OL 设定的动作。

10、输出比较通道7 数据寄存器(OC7D)
可在任何时候读或写。

OC7M 对于其他OC 输出引脚的管理限于将某个二进制值送到对应引脚,这个值保存在寄存器OC7D 中的对应位中。

当OC7 匹配成功后,若某个
OC7Mn=1,则内部逻辑将OC7Dn 送到对应引脚。

OC7D 中的各位与PORTT 口寄存器的各位一一对应。

当通道7 比较成功时,如果OC7M 中的某个位为1,OC7D 中的对应位将被输出到PORTT 的对应引脚。

当OC7M 中的某个位为1 时,通道7 匹配成功的动作如果与通道6-0 的动作发生在同一个周期,前者将覆盖后者。

因此各个通道的动作将依赖于OC7D中各个位的设置。

相关主题