第5讲-定时器_第1页
第5讲-定时器_第2页
第5讲-定时器_第3页
第5讲-定时器_第4页
第5讲-定时器_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第五讲第五讲 定时器原理及应用定时器原理及应用定时器概述定时器概述 MSP430单片机中具有单片机中具有16位片上定时位片上定时/计数器,该定时计数器,该定时/计数器模块除了计数器模块除了通用的定时功能外,还捕获、通用的定时功能外,还捕获、PWM输出、间隔计时等功能,并具有完善输出、间隔计时等功能,并具有完善的中断服务。的中断服务。16位片上定时位片上定时/计数器可用来实现定时、计数、频率测量、计数器可用来实现定时、计数、频率测量、PWM信号发生、信号触发检测、脉冲脉宽信号测量,并且通过编程配置信号发生、信号触发检测、脉冲脉宽信号测量,并且通过编程配置还可用作串口的波特率发生器等等。还可用作

2、串口的波特率发生器等等。 定时定时/计数器计数器A:16位的定时器,具有位的定时器,具有3路捕获路捕获/比较单元,时钟比较单元,时钟源可选。定时器源可选。定时器A可支持多路捕获可支持多路捕获/比较、比较、PWM输出、间隔计时等,输出、间隔计时等,其也支持中断,中断信号来自定时器溢出或者捕获其也支持中断,中断信号来自定时器溢出或者捕获/比较输出。比较输出。 定时定时/计数器计数器B:16位的定时器,具有位的定时器,具有7路捕获路捕获/比较单元。与定比较单元。与定时器时器A结构、功能基本相同,但有所增强,结构、功能基本相同,但有所增强, 看门狗定时器(看门狗定时器(WDT):看门狗主要功能是当程序

3、发生问题):看门狗主要功能是当程序发生问题时,使系统复位重新启动,将程序拉回正常。时,使系统复位重新启动,将程序拉回正常。MSP430看门狗定看门狗定时器具有看门狗模式和定时器两种模式。时器具有看门狗模式和定时器两种模式。 MSP430系统默认看门狗是打开的,这是值得注意的一点,若不系统默认看门狗是打开的,这是值得注意的一点,若不使用看门狗模式可使用使用看门狗模式可使用 “WDTCTL = WDTPW+WDTHOLD;” 关闭看门狗。关闭看门狗。 5.5 看门狗定时看门狗定时/计数器(计数器(WDT) 5.1 WDT工作原理工作原理 WDT一个特殊的定时器,由一个特殊的定时器,由16位计数器、

4、脉冲发生器、时钟源选择电位计数器、脉冲发生器、时钟源选择电路及相关控制电路组路及相关控制电路组成成,其功能由,其功能由WDTCTL控制,控制,WDTCTL是一个是一个16位受位受密码保护的可读写寄存器,其高字节为口令,口令为密码保护的可读写寄存器,其高字节为口令,口令为 5AH,当对它写入操,当对它写入操作时必须写口令才能操作,否则会导致系统复位。作时必须写口令才能操作,否则会导致系统复位。WDTCTL可设置看门狗可设置看门狗的主要功能。的主要功能。图图5.9 看门狗定时器寄看门狗定时器寄/计数器结构计数器结构WDT组成结构如图5.9所示。 (1)WDT看门狗功能实现看门狗功能实现 (2)WD

5、T间隔定时器功能实现间隔定时器功能实现 5.1.2看门狗定时器寄存器看门狗定时器寄存器 5.1.2看门狗定时器寄存器看门狗定时器寄存器 5.1.3看门狗定时器应用举例看门狗定时器应用举例 思考: void main() P1DIR|=BIT0;P1OUT=0X01;/翻转P1.0输出电平_BIS_SR(LPM4_bits); 练习: /*利用WDT的定时器模式控制led小灯L1以1s的间隔时间闪灭*/5.2 定时器定时器_A5.2.1 定时器定时器_A结构结构 定时器定时器A具有如下特征:具有如下特征: 16位异步定时位异步定时/计数器,具有四种操作模式;计数器,具有四种操作模式; 灵活自由的

6、可选、可配置的输入时钟源;灵活自由的可选、可配置的输入时钟源; 具有具有3个可配置的捕获个可配置的捕获/比较单元,可以捕获外部信号并锁定该比较单元,可以捕获外部信号并锁定该 信号形式;信号形式; 可配置的可配置的PWM输出;输出; 定时器中断编码,有助中断的快速响应,中断服务功能完善;定时器中断编码,有助中断的快速响应,中断服务功能完善; 输出方式丰富。输出方式丰富。图图5.1 5.1 1616位定时位定时/ /计数器结构计数器结构Timer_ATimer_A定时器模块:定时器模块: 一个一个1616位主定时计数器(位主定时计数器(TARTAR);); 3 3路捕获比较单元(路捕获比较单元(C

7、CR0CCR2CCR0CCR2),), TARTAR为为3 3路路CCRCCR提供计数值提供计数值 1、定时器、定时器_A的定时的定时/计数单元计数单元(1 1)工作原理)工作原理主计定时计数器单元包括:时钟源选择、预分频器、计数器(主计定时计数器单元包括:时钟源选择、预分频器、计数器(TAR)和计)和计数模式选择数模式选择4个部分。定时器支持多种类型时钟源,包括:个部分。定时器支持多种类型时钟源,包括:SMCLK、ACLK、TACLK(外部引脚)、(外部引脚)、INCLK(TACLK取反),类型选择由位域取反),类型选择由位域TASSELX X控制。时钟源经过预分频器分频后作为控制。时钟源经

8、过预分频器分频后作为16位定时器位定时器TARTAR输入,在时钟信号的上输入,在时钟信号的上升沿,升沿,TAR可递增或者递减计数(由计数器工作模式而定),计数器溢出后可递增或者递减计数(由计数器工作模式而定),计数器溢出后可产生中断,可产生中断,TAR可以通过软件进行读或写。置位可以通过软件进行读或写。置位TACLR,可以复位,可以复位TAR、预分频器和计数方向。预分频器和计数方向。(2)工作模式工作模式 定时器有四种工作模式:停止、增计数、连续计数、增定时器有四种工作模式:停止、增计数、连续计数、增/减计减计数模式。工作模式由数模式。工作模式由MCx位域控制。位域控制。 a、停止模式、停止模

9、式 该模式用于定时器暂停,所有寄存器现行的内容在停止模式该模式用于定时器暂停,所有寄存器现行的内容在停止模式结束后都可继续使用。当定时器暂停后重新计数时,计数器将结束后都可继续使用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数,若需改变,则可从暂停时的值开始以暂停前的计数方向计数,若需改变,则可通过通过TACTL中的中的TACLR控制位来清除定时器的方向记忆特性。控制位来清除定时器的方向记忆特性。 b、增计数模式、增计数模式 该模式用于计数周期小于该模式用于计数周期小于0 x0FFFF的连续计数情况,捕获的连续计数情况,捕获/比较寄存器比较寄存器TACCR0用作用作

10、Timer_A增计数模式的周期寄存器。计数器增计数模式的周期寄存器。计数器TAR从从0开始增计数到开始增计数到TACCR0的的值,当计数值与值,当计数值与TACCR0的值相等,定时器复位并从的值相等,定时器复位并从0开始重新计数。开始重新计数。图图5.2 定时器定时器A增计数模式增计数模式uT=TACCR0+1;uTARTACCR0,选,选择增计数模式,则择增计数模式,则TAR从从0开始计数开始计数。 该模式产生的中断标志:该模式产生的中断标志: 当当TAR与与TACCR0相等时,产生中断标志相等时,产生中断标志CCIFG; 当计数器溢出返回零,产生中断标志当计数器溢出返回零,产生中断标志TA

11、IFG。注:注:在定时器工作时改变在定时器工作时改变TACCR0值,若新计数周期值大或值,若新计数周期值大或等于旧值,或大于当前计数值,则定时器会计数到新的周期等于旧值,或大于当前计数值,则定时器会计数到新的周期值;当新计数周期值小于当前计数值,定时器回到值;当新计数周期值小于当前计数值,定时器回到0,但是,但是,在回至在回至0前,会多计数前,会多计数1次。次。 c.连续计数模式:连续计数模式: 在该模式下,定时器重复的从在该模式下,定时器重复的从0开始计数到开始计数到0FFFFH,如图,如图5.3所示。所示。此时,此时,TACCR0和其它捕获比较寄存器一样工作。和其它捕获比较寄存器一样工作。

12、图图5.3 3 定时器定时器A连续计数模式连续计数模式0Ht t0FFFFH 该模式可产生的中断标志:该模式可产生的中断标志: 当计数器返回到当计数器返回到0时,中断标志位时,中断标志位TAIFG置位;置位; 当计数器值从当计数器值从TACCRx-1到到TACCRx时,中断标志位时,中断标志位CCIFGx 置位。置位。 图图5.4 连续模式下固定时间间隔产生连续模式下固定时间间隔产生原理:原理:通过在中通过在中断函数中断函数中不断更新不断更新TACCR0的值,产的值,产生固定时生固定时间间隔间间隔t0,若欲产生若欲产生多路时间多路时间间隔,可间隔,可以启用多以启用多路路TACCRx。 d. 增

13、增/减计数模式:减计数模式: 该模式用于计数周期不是该模式用于计数周期不是0 x0FFFF,且需要对称波形的情况。定时,且需要对称波形的情况。定时器重复的计数到器重复的计数到TACCR0再反向递减到再反向递减到0。计数周期是。计数周期是TACCR0值的值的2倍。倍。计数模式如图计数模式如图5.5所示。所示。图图5.5 定时器定时器A增增/减计数模式减计数模式 在该模式下,计数方向是被锁定的,即允许定时器停止并重启后,计在该模式下,计数方向是被锁定的,即允许定时器停止并重启后,计数方向与停止之前的方向一致,若想改变,则可以置位数方向与停止之前的方向一致,若想改变,则可以置位TACLR位。位。 该

14、模式产生的中断:当计数器计数由该模式产生的中断:当计数器计数由TACCR01递增到递增到TACCR0时,时,TACCR0 CCIFG置位;计数器从置位;计数器从0 x0001递减到递减到0时,时,TAIFG置位。置位。 增增/减计数模式除了支持对称波形产生外,还支持输出信号需要死区减计数模式除了支持对称波形产生外,还支持输出信号需要死区间隔的场合,例如,电机驱动间隔的场合,例如,电机驱动H桥式电路,使能桥式电路,使能H桥的电平信号不能同桥的电平信号不能同时为高,即时为高,即H桥的两个半桥不能同时导通(会造成电机损坏),如图桥的两个半桥不能同时导通(会造成电机损坏),如图5.6所示,可以利用捕获

15、比较单元的输出模式(详见下小节),进行所示,可以利用捕获比较单元的输出模式(详见下小节),进行H桥式桥式电路的驱动。电路的驱动。图图5.6 增增/减模式输出减模式输出其中:其中:tdead= Ttimer (TACCR1 TACCR2);Ttimer:定时器时钟周期;:定时器时钟周期;TACCRx:捕获比较寄存器:捕获比较寄存器x的内容,其内容写入时立即更新。的内容,其内容写入时立即更新。 2、捕获、捕获/比较单元比较单元定时器定时器A有有3个独立的捕获个独立的捕获/比较模块,每个模块包括信号源选择、触发器、比较模块,每个模块包括信号源选择、触发器、信号锁存、门电路和输出模式选择等部分,任一模

16、块可以捕获定时器时间数信号锁存、门电路和输出模式选择等部分,任一模块可以捕获定时器时间数据,或者产生时间间隔。据,或者产生时间间隔。(1 1)捕获模式)捕获模式当当TACCTLx中的中的CAPx=1,选择捕获模式,一般用于记录时间事件,例如,选择捕获模式,一般用于记录时间事件,例如速度计量或者事件测量。捕获模块的输入信号速度计量或者事件测量。捕获模块的输入信号CCIxA和和CCIxB,连接到外部,连接到外部引脚信号或者内部信号(可通过引脚信号或者内部信号(可通过CCISx选择);选择);CMx位域选择捕获信号的触位域选择捕获信号的触发模式(上升沿、下降沿或任意跳变),如果在选定的引脚上发生设定

17、的脉发模式(上升沿、下降沿或任意跳变),如果在选定的引脚上发生设定的脉冲触发沿,则冲触发沿,则TAR中的值将写入到中的值将写入到TCCRx中,中断位中,中断位CCIFGx置位。置位。输入信号的值可以通过输入信号的值可以通过CCI位来读取。捕获信号可能和定时器时钟不同步,位来读取。捕获信号可能和定时器时钟不同步,可导致竞争条件,建议置位可导致竞争条件,建议置位SCS,可在下个定时器时钟周期内同步捕获信号,可在下个定时器时钟周期内同步捕获信号与定时器周期。与定时器周期。说明:说明: 如果在选定的引脚上发生设定的脉冲触发沿(上升沿,下降沿或任意跳如果在选定的引脚上发生设定的脉冲触发沿(上升沿,下降沿

18、或任意跳 变)变) ,则,则 TAR 中的值将写到中的值将写到 T ACCRx 中;中; 每个捕获每个捕获/比较寄存器都能被软件用于时间标记,可用于各种目的:测量比较寄存器都能被软件用于时间标记,可用于各种目的:测量 软件程序所用时间,测量硬件事件间的时间,测量系统频率;软件程序所用时间,测量硬件事件间的时间,测量系统频率; 当捕获完成后,当捕获完成后, 中断标志位中断标志位 CCIFG 被置位。被置位。 如果总的中断允许位如果总的中断允许位GIE 允许,允许, 相应的中断允许位相应的中断允许位 CCIE也允许,则将产生中断请求。也允许,则将产生中断请求。捕获过程:捕获过程:若没有捕捉发生,将

19、等待;若没有捕捉发生,将等待;若此时读取到捕获值,将到下一个读取值去继续等待;若此时读取到捕获值,将到下一个读取值去继续等待;若此时正在发生捕获,将发生溢出。若此时正在发生捕获,将发生溢出。完整的捕获过程包括:等待捕获事件完整的捕获过程包括:等待捕获事件捕获发生捕获发生判断判断是否发生溢出并且读取捕获值是否发生溢出并且读取捕获值等待下次捕捉。等待下次捕捉。(2 2) 比较模式比较模式当当CAP=0时选择比较模式,比较模式主要用来产生时选择比较模式,比较模式主要用来产生PWM信号信号或者用于产生特定时间间隔的中断。当计数器或者用于产生特定时间间隔的中断。当计数器TAR的值计数到的值计数到TACC

20、Rx的值时:的值时:u中断标志中断标志CCIFG置位:置位:u内部信号内部信号EQUx=1;uEQUx根据不同输出模式影响输出;根据不同输出模式影响输出;u输入信号输入信号CCI被锁存到被锁存到SCCI。说明:说明: 独立的输出模块被分配给各个捕获独立的输出模块被分配给各个捕获/比较寄存器的每一个,比较寄存器的每一个, 输出模块可以独输出模块可以独 立运行于比较功能,或以各种方式触发;立运行于比较功能,或以各种方式触发; 当当 T ACCTLx 中的中的 CAP0, 该模块工作在比较模式。该模块工作在比较模式。 这时与捕获有关的这时与捕获有关的 硬件停止工作,在计数器硬件停止工作,在计数器 T

21、AR中计数值等于比较器中的值时设置标志位,产中计数值等于比较器中的值时设置标志位,产 生中断请求;也可结合输出单元产生所需要的信号;生中断请求;也可结合输出单元产生所需要的信号; 三个捕获三个捕获/比较器在比较模式时设置比较器在比较模式时设置 EQUx 信号有差别:信号有差别: 当当 T AR 的值大于等于的值大于等于 T ACCR0 中的数值时,中的数值时,EQU0=1; 当当 T AR 的值等于相应的的值等于相应的 T ACCR1 或或 T ACCR2 的值时,的值时,EQU1=1 或或 EQU21。 (3 3) 输出单元输出单元每个捕获每个捕获/比较模块包含一个输出单元,用于产生输出信号

22、,如比较模块包含一个输出单元,用于产生输出信号,如PWM信号。信号。每个输出单元可以根据每个输出单元可以根据EQU0和和EQU1产生产生8种输出模式,其输出模式由种输出模式,其输出模式由OUTMODx位控制,详见表位控制,详见表5.1。.OUTMODxOUTMODx输出模式输出模式描述描述000000输出模式输出模式输出信号输出信号OUTxOUTx由每个捕获由每个捕获/ /比较模块的控制寄存器比较模块的控制寄存器TACCTLxTACCTLx中中OUTxOUTx位定义,并在写入该寄存器后立即更新。位定义,并在写入该寄存器后立即更新。001001置位模式置位模式输出信号在输出信号在TARTAR等于

23、等于TACCRxTACCRx时置位,并保持置位到定时器复时置位,并保持置位到定时器复位或选择另一种输出模式为止。位或选择另一种输出模式为止。010010翻转翻转/ /复位复位输出在输出在TARTAR的值等于的值等于TACCRxTACCRx时翻转,当时翻转,当TARTAR的值等于的值等于TACCR0TACCR0时时复位。复位。011011置位置位/ /复位复位输出在输出在TARTAR的值等于的值等于TACCRxTACCRx时置位,当时置位,当TARTAR的值等于的值等于TACCR0TACCR0时时复位。复位。100100翻转翻转输出电平在输出电平在TARTAR的值等于的值等于TACCRxTACC

24、Rx时翻转,输出周期是定时器时翻转,输出周期是定时器周期的周期的2 2倍。倍。101101复位模式复位模式输出在输出在TARTAR的值等于的值等于TACCRxTACCRx时复位,并保持低电平直到选择时复位,并保持低电平直到选择另一种输出模式。另一种输出模式。110110翻转翻转/ /置位置位输出电平在输出电平在TARTAR的值等于的值等于TACCRxTACCRx时翻转,当时翻转,当TARTAR值等于值等于TACCR0TACCR0时置位。时置位。111111复位复位/ /置位置位输出电平在输出电平在TARTAR的值等于的值等于TACCRxTACCRx时复位,当时复位,当TARTAR的值等于的值等

25、于TACCR0TACCR0时置位。时置位。表表5.1 输出单元输出模式输出单元输出模式注:注:当输出模式进行更换时,除非是切换到模式当输出模式进行更换时,除非是切换到模式0 0,OUTMODxOUTMODx某一某一位需要保持置位,否则输出或非门会认为是模式位需要保持置位,否则输出或非门会认为是模式0 0,而产生脉冲,而产生脉冲干扰。比较可靠的切换是,用输出模式干扰。比较可靠的切换是,用输出模式7 7作为过渡状态。作为过渡状态。例:例: BIS #OUTMOD_7, &TACCTLx ; BIS #OUTMOD_7, &TACCTLx ; 置输出模式置输出模式7 7 BIC #O

26、UTMODx, &TACCTLx ; BIC #OUTMODx, &TACCTLx ; 清除不相关的位清除不相关的位寄存器寄存器简写简写类型类型地址地址Timer_A control l控制寄存器控制寄存器TACTLR/DR/D0160H0160HTimer_A counter计数器计数器TARR/DR/D0170H0170H捕获捕获/ /比较控制寄存器比较控制寄存器0 0CCTL0(TACCTL0)R/DR/D0162H0162H捕获捕获/ /比较寄存器比较寄存器0 0CCR0(TACCR0)R/DR/D0172H0172H捕获捕获/ /比较控制寄存器比较控制寄存器1 1CC

27、TL1(TACCTL1)R/DR/D0164H0164H捕获捕获/ /比较寄存器比较寄存器1 1CCR1(TACCR1)R/DR/D0174H0174H捕获捕获/ /比较控制寄存器比较控制寄存器2 2CCTL2(TACCTL2)R/DR/D0166H0166H捕获捕获/ /比较寄存器比较寄存器2 2CCR2(TACCR2)R/DR/D0176H0176H中断向量寄存器中断向量寄存器TAIVR R012EH012EH5.2.2 定时器定时器_A主要寄存器主要寄存器 定时器定时器_A主要寄存器表主要寄存器表5.2所示。所示。 1.TACTL 1.TACTL 控制寄存器控制寄存器 复位值:复位值:0

28、000H0000H15109876543210未用未用SSEL1SSEL0ID1ID0MC1MC0未用未用TATACLRTAIETAIFGSSEL1SSEL0输入时钟源输入时钟源说明说明00TACLK用特定的外部引脚信号用特定的外部引脚信号01ACLK辅助时钟辅助时钟10SMCLK子系统时钟子系统时钟11INCLKTACLK取反取反Bit 15-10 未使用未使用Bit 9-8 SSEL1、SSEL0 选择定时器输入分频器的时钟源选择定时器输入分频器的时钟源Bit 7-6 ID1,ID0 分频系数选择分频系数选择 : 00 不分频不分频 01 2分频分频 10 4分频分频 11 8分频分频 B

29、it 5-4 MC1,MC0 计数模式选择控制位:计数模式选择控制位: 00 停止模式停止模式 :计数器暂停:计数器暂停 01 增计数模式:计数器计数至增计数模式:计数器计数至TACCR0 10 连续计数模式:计数器计数至连续计数模式:计数器计数至0FFFFH 11 增增/减计数模式:计数器计数至减计数模式:计数器计数至TACCR0,再递减至,再递减至0Bit 3 未使用未使用Bit 2 TACLR 定时器清除位:定时器清除位: POR或或TACLR置位时定时器、计数方向、输入分频器复位。置位时定时器、计数方向、输入分频器复位。 TCLR由硬件自动复位其读出始终为由硬件自动复位其读出始终为0。

30、定时器在下一个有效。定时器在下一个有效 输入沿开始工作。如果不是被清除模式控制暂停,则定时以输入沿开始工作。如果不是被清除模式控制暂停,则定时以 增计数模式开始工作。增计数模式开始工作。Bit 1 TAIE 定时器中断允许位:定时器中断允许位: 0 禁止定时器溢出中断禁止定时器溢出中断 1 允许定时器溢出中断允许定时器溢出中断Bit 0 TAIFG 定时器溢出标志位:定时器溢出标志位: 0 无定时器溢出中断无定时器溢出中断 1 定时器溢出中断定时器溢出中断 增计数模式:定时器由增计数模式:定时器由TACCR0计数到到计数到到0时时TAIFG置位。置位。 连续计数模式:定时器由连续计数模式:定时

31、器由0FFFFH计数到计数到0时时TAIFG置位。置位。 增增/减计数模式:定时器由减计数模式:定时器由TACCR0减计数到减计数到0时时TAIFG置位。置位。2. TAR 162. TAR 16位计数器位计数器 复位值:复位值:0000H0000H1503. TACCTLx 捕获捕获/比较控制寄存器比较控制寄存器 复位值:复位值:0000H 15 14 13 12 11 109 87 6 5 4 3210CM1-0CCIS1-0 SCSSCCIXCAPOUTMODx CCIEx CCIxOUT COVCCIFx TIMER_A有多个捕获比较模块,每个模块都有自己的控制寄存器有多个捕获比较模块

32、,每个模块都有自己的控制寄存器TACCTLxBit 15-14 CM1-0 捕获模式:选择捕获模式。捕获模式:选择捕获模式。 00 禁止捕获模式禁止捕获模式 01 上升沿捕获上升沿捕获 10 下降沿捕获下降沿捕获 11 上升沿与下降沿都捕获上升沿与下降沿都捕获 Bit 13-12 CCISI1-0 捕获捕获/比较输入选择位:选择捕获模式捕获事件的输入端。比较输入选择位:选择捕获模式捕获事件的输入端。 00 选择选择CCIxA 01 选择选择CCIxB 10 选择选择GND 11 选择选择VCC Bit 11-10 SCS 同步捕获信号:选择捕获信号与定时器时钟同步、同步捕获信号:选择捕获信号与

33、定时器时钟同步、 异步关系。异步关系。 0 异步捕获异步捕获 1 同步捕获同步捕获 注意:异步捕获模式允许在捕获时立即将注意:异步捕获模式允许在捕获时立即将CCIFG置位并捕获定时器值,置位并捕获定时器值,适用于捕获信号的周期远大于定时器时钟周期的情况。但是,若定时器适用于捕获信号的周期远大于定时器时钟周期的情况。但是,若定时器时钟和捕获信号发生时间竞争,则捕获寄存器的值可能出错。建议在实时钟和捕获信号发生时间竞争,则捕获寄存器的值可能出错。建议在实际中使用同步捕获模式,捕获总是有效的。捕获际中使用同步捕获模式,捕获总是有效的。捕获/比较相等信号比较相等信号EQUx将将选择中的捕获选择中的捕获

34、/比较输入信号比较输入信号CCIx(CCIxA,CCIxB,Vcc和和GND)进行锁存,进行锁存,且可由且可由SCCIx读出。读出。 Bit 9 未使用未使用 Bit 8 CAP 选择捕获模式还是比较模式:选择捕获模式还是比较模式: 0 比较模式比较模式 (默认模式)(默认模式) 1 捕获模式捕获模式 注意:注意:默认为比较模式,若通过默认为比较模式,若通过TACCTLx中的中的CAP使工作模式从比较模式变为使工作模式从比较模式变为捕获模式,则不应同时进行捕获,否则,在捕获比较寄存器中的值是不可预料的。捕获模式,则不应同时进行捕获,否则,在捕获比较寄存器中的值是不可预料的。指令顺序为:指令顺序

35、为:1)修改控制寄存器,由比较模式换到捕获模式;)修改控制寄存器,由比较模式换到捕获模式;2)捕获)捕获。Bit 7-5 OUTMODx 选择输出模式:选择输出模式: 000 输出输出 001 置位置位 010 翻转翻转/复位复位 011 置位置位/复位复位 100 翻转翻转/置位置位 101 复位复位 110 翻转翻转/置位置位 111 复位复位/置位置位 Bit 4 CCIEx 捕获比较模块中断允许位:捕获比较模块中断允许位:1,允许;,允许;0,禁止。,禁止。Bit 3 CCIx 捕获比较模块的输入信号:捕获比较模块的输入信号: 捕获模式:由捕获模式:由CCIS0和和CCIS1选择的输入

36、信号通过该选择的输入信号通过该 位读出。位读出。 比较模式:比较模式:CCIx复位。复位。 Bit 2 OUT 输出信号:输出信号: 0 输出低电平输出低电平 1 输出高电平输出高电平 如果如果CMx选择输出模式选择输出模式0(输出输出),则该位对应于输入状态。,则该位对应于输入状态。 Bit 1 COV 捕获溢出标志:捕获溢出标志: 0 输出低电平输出低电平 1 输出高电平输出高电平 比较模式:没有使比较模式:没有使COV置位的捕获事件。置位的捕获事件。 捕获模式:如果捕获寄存器的值被读出前再次发生捕获事捕获模式:如果捕获寄存器的值被读出前再次发生捕获事 件,则件,则COV置位。程序可检测置

37、位。程序可检测COV来断定原值读出前是否来断定原值读出前是否 又发生捕获事件。读捕获寄存器时不会使溢出标志复位,又发生捕获事件。读捕获寄存器时不会使溢出标志复位, 须用软件复位。须用软件复位。 Bit 0 CCIFGx 捕获比较中断标志:捕获比较中断标志: 捕获模式:寄存器捕获模式:寄存器CCRx捕获了定时器捕获了定时器TAR值时置位。值时置位。 比较模式:定时器比较模式:定时器TAR值等于寄存器值等于寄存器CCRx值时置位。值时置位。 CCRx 捕获捕获/比较寄存器比较寄存器1504. CCRx捕获捕获/比较寄存器比较寄存器在捕获比较模块中,可读可写。其中在捕获比较模块中,可读可写。其中CC

38、R0经常用作周期寄存器,经常用作周期寄存器,其它其它CCRx相同。相同。 5. TAIV定时器定时器A中断向量寄存器中断向量寄存器 Timer_A有两个中断向量,一个单独分配给捕获比较寄存器有两个中断向量,一个单独分配给捕获比较寄存器CCR0,另一个作为共用的中断向量用于定时器和其他的捕获比较,另一个作为共用的中断向量用于定时器和其他的捕获比较寄存器(详见表寄存器(详见表5.3)。)。 CCR0中断向量具有最高的优先级,中断向量具有最高的优先级,CCR0能用于定义是增计数能用于定义是增计数和增减计数模式的周期,因此响应速度最快,和增减计数模式的周期,因此响应速度最快,CCIFG0在被中断服在被

39、中断服务时能自动复位。务时能自动复位。 CCR1-CCR2和定时器共用另一个中断向量,属于多源中断,对和定时器共用另一个中断向量,属于多源中断,对应的中断标志应的中断标志CCIFG1-CCIFG2和和TAIFG1在读中断向量字在读中断向量字TAIV后,后,自动复位。如果不访问自动复位。如果不访问TAIV寄存器,则不能自动复位,须用软件清寄存器,则不能自动复位,须用软件清除;如果相应的中断允许位不允许中断,则不会产生中断请求,但除;如果相应的中断允许位不允许中断,则不会产生中断请求,但中断标志仍存在,需用软件清除。中断标志仍存在,需用软件清除。15-54-100-0中断向量中断向量05.2.3

40、定时器定时器_A的中断管理的中断管理中断优先级中断优先级定时器定时器_A有两个中断向量:有两个中断向量:TACCR0中断向量中断向量:处理处理TACCT0的的CCIFG中断标志。中断标志。TACCR0的中断标志的中断标志CCIFG在定时器在定时器_A中具有最高优先级,当中具有最高优先级,当CCIFG中中断被响应以后该位自动清零。断被响应以后该位自动清零。TAIV中断向量中断向量:处理所有其它的处理所有其它的CCIFG和和TAIFG中断标志。中断标志。TACCR1的的CCIFG、TACCR2的的CCIFG和和TAIFG三个中断的优先级依次降三个中断的优先级依次降低,它们共用一个中断源。中断向量寄

41、存器低,它们共用一个中断源。中断向量寄存器TAIV用来确定哪一个产生用来确定哪一个产生了中断请求,读取该寄存器的值就可以确定中断类型,如表了中断请求,读取该寄存器的值就可以确定中断类型,如表5.3所示。所示。中断优先级中断优先级中断源中断源缩写缩写TAIV的内容的内容高高捕获捕获/比较器比较器1CCIFG12捕获捕获/比较器比较器2CCIFG24捕获捕获/比较器比较器XCCIFGx低低定时器溢出定时器溢出TAIFG110没有终端将挂起没有终端将挂起0表表5.3 中断优先级中断优先级2. 中断及中断嵌套中断及中断嵌套 中断响应后,自动关闭总中断,此时不会响应高优先级中断,除非在中中断响应后,自动

42、关闭总中断,此时不会响应高优先级中断,除非在中断程序中打开总中断,即产生了中断嵌套。断程序中打开总中断,即产生了中断嵌套。实现中断嵌套需要注意以下几点:实现中断嵌套需要注意以下几点:(1)默认的是关闭中断嵌套的,除非中断程序中再次开总中断)默认的是关闭中断嵌套的,除非中断程序中再次开总中断EINT;(2)多个中断同时到来,按优先级来执行,即中断优先级只有在多个中)多个中断同时到来,按优先级来执行,即中断优先级只有在多个中 断同时到来时才起做用,中断服务不执行抢先原则。断同时到来时才起做用,中断服务不执行抢先原则。(3)对于单源中断)对于单源中断,只要响应中断只要响应中断,系统硬件自动清中断标志

43、位,对于定系统硬件自动清中断标志位,对于定 时器的比较时器的比较/捕获中断,只要访问捕获中断,只要访问TAIV/TBIV,标志位倍被自动清除。,标志位倍被自动清除。5.2.3 定时器定时器_B模块模块 定时器定时器_B比定时器比定时器_A多了比较锁存器,这使得用户可以更加灵活地控多了比较锁存器,这使得用户可以更加灵活地控制比较数据更新的时机;从结构上看两者非常的相似。定时器制比较数据更新的时机;从结构上看两者非常的相似。定时器_B模块的模块的结构图如图结构图如图5.7所示:所示:1.Timer_B和和Timer_A共同的特征共同的特征 具有具有4种工作模式;种工作模式; 计数器输入时钟源可选可

44、配置;计数器输入时钟源可选可配置;多个独立可配置捕获多个独立可配置捕获/比较模块;比较模块; 可配置输出单元(具有可配置输出单元(具有8种输出模式);种输出模式);中断功能丰富(中断源自计数器溢出、各捕获中断功能丰富(中断源自计数器溢出、各捕获/比较模块的捕获事件或比比较模块的捕获事件或比较事件)。较事件)。 2. Timer_B与与Timer_A不同之处不同之处 Timer_B计数长度为计数长度为8位、位、10位、位、12位、位、16位可编程;位可编程;Timer_B的的TBCCRx缓存寄存器是双向且可分组管理;缓存寄存器是双向且可分组管理;Timer_B中无中无Timer_A中中SCCI寄

45、存器位功能;寄存器位功能; Timer_B在比较模式下的捕获在比较模式下的捕获/比较寄存器功能增加比较锁存器;比较寄存器功能增加比较锁存器; Timer_B输出可设为高阻输出;输出可设为高阻输出; 由于定时器由于定时器_B比定时器比定时器_A的相似性,这里不再赘述,请读者参考数据手的相似性,这里不再赘述,请读者参考数据手册。册。图图5.7 定时器定时器B模块结构图模块结构图5.4 应用实例应用实例 1. 用用Timer_A实现红外载波(实现红外载波(40K)发射。)发射。/*本程序根据不同的本程序根据不同的key置进行数据的发送,使用置进行数据的发送,使用40KHZ载波载波key值由值由P2口

46、口按键决定,本程序中按键决定,本程序中key取值范围为取值范围为1,2,3,4定义周期为定义周期为2ms的方的方波,高电平为波,高电平为1ms,低电平为,低电平为1ms根据不容的根据不容的key值发送不同的方波个数值发送不同的方波个数(例如(例如key = 1,发送一个)采用发送一个)采用1M的机器周期的机器周期#include#define uchar unsigned char#define uint unsigned int#define PWM BIT2 /*发送高电平函数发送高电平函数*/void Output_high(uint val) /发送周期约为发送周期约为25us的方波,

47、高电平的方波,高电平12us,低,低电平电平12us uint j; /发送方波的次数发送方波的次数 P1SEL |= PWM; P1DIR |= PWM; TACTL |= TASSEL1 + MC0 + TACLR; TACCTL1 |= OUTMOD_0 + OUTMOD_1 + OUTMOD_2; TACCR0 = 24; TACCR1 = 12; for(j = val;j 0;j-) LPM0; /*发送低电平函数发送低电平函数*/void Output_low(uint val) /停止发送方波,停止发送方波,CPU进入节进入节电电模式模式 P1SEL |= PWM; P1DIR |= PWM; TACTL |= TASSEL1 + MC0 + TACLR; TACCTL1 |= OUTMOD_0; /输出选择输出选择OUTMOD,信号输出由,信号输出由OUT位控制位控制 TACCR0 = val; LPM0; /*定时中断函数定时中断函数*/#pragma vector = TIMERA0_VECTOR_in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论