《(12)--第7章 定时器模块单片机技术.pdf》由会员分享,可在线阅读,更多相关《(12)--第7章 定时器模块单片机技术.pdf(101页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第7章章 定时器模块定时器模块MSP430定时功能及其实现定时功能及其实现 看门狗定时器看门狗定时器 WDT的操作的操作 看门狗定时器的中断控制功能看门狗定时器的中断控制功能 看门狗应用举例看门狗应用举例 16位定时器位定时器 A定时器定时器 A的特性的特性Timer_A结构结构Timer_A工作原理工作原理Timer_A典型应用典型应用 16位定时器位定时器 B 16位定时器位定时器 D 定时器库函数定时器库函数定时器定时器(Timer)主要内容主要内容MSP430定时功能及其实现(1/2)定时功能模块是定时功能模块是MSP430应用系统中经常用到的重要部分,应用系统中经常用到的重要部分,
2、可用来实现定时控制、延迟、频率测量、脉宽测量和信号产生、可用来实现定时控制、延迟、频率测量、脉宽测量和信号产生、信号检测等等。信号检测等等。一般来说,一般来说,MSP430所需的定时信号可以用软件和硬件两所需的定时信号可以用软件和硬件两种方法来获得。种方法来获得。MSP430系列有丰富定时器资源:看门狗定时器(系列有丰富定时器资源:看门狗定时器(WDT),),定时器定时器A(Timer_A),定时器),定时器B(Timer_B)和定时器)和定时器 D(Timer_D)等。)等。定时器定时器功能功能看门狗定时器看门狗定时器基本定时、当程序发生错误时执行一个受控的系统重基本定时、当程序发生错误时执
3、行一个受控的系统重启动启动基本定时器基本定时器基本定时、支持软件和各种外围模块工作在低频率、基本定时、支持软件和各种外围模块工作在低频率、低功耗条件下低功耗条件下定时器定时器 A基本定时、支持同时进行的多种时序控制、多个捕获基本定时、支持同时进行的多种时序控制、多个捕获/比较功能和多种输出波形(比较功能和多种输出波形(PWM),可以以硬件方式),可以以硬件方式支持串行通信。支持串行通信。定时器定时器 B基本定时、功能基本同定时器基本定时、功能基本同定时器A,但比定时器,但比定时器A灵活,灵活,功能更强大功能更强大定时器定时器 D基本定时、功能基本同定时器基本定时、功能基本同定时器A,但比定时器
4、,但比定时器A灵活,灵活,功能更强大功能更强大MSP430定时功能及其实现(2/2)MSP430系列定时器部件功能,如下表所示:系列定时器部件功能,如下表所示:7.1 看门狗定时器看门狗定时器看门狗定时器 概述(1/1)看门狗定时器,主要作用:看门狗定时器,主要作用:用于在“程序跑飞”时,用于在“程序跑飞”时,WDT就会产生溢出,从而产生系就会产生溢出,从而产生系统复位,统复位,CPU需要重新运行用户程序,这样程序就可以又回需要重新运行用户程序,这样程序就可以又回到正常运行状态。到正常运行状态。MSP430 看门狗模块具有以下特性:看门狗模块具有以下特性:8种软件可选的定时时间种软件可选的定时
5、时间看门狗工作模式看门狗工作模式定时器工作模式定时器工作模式带密码保护的带密码保护的 WDT 控制寄存器控制寄存器时钟源可选择时钟源可选择为降低功耗,可停止为降低功耗,可停止时钟失效保护时钟失效保护MSP430单片机的看门狗定时器逻辑结构框图如图单片机的看门狗定时器逻辑结构框图如图4.4.1所示。由该图可知,所示。由该图可知,MSP430单片机看门狗定时器由中断产生单片机看门狗定时器由中断产生逻辑单元、看门狗定时计数器、口令比较单元、看门狗控制逻辑单元、看门狗定时计数器、口令比较单元、看门狗控制寄存器、参考时钟选择逻辑单元等构成。寄存器、参考时钟选择逻辑单元等构成。看门狗定时器 WDT的操作(
6、1/4)图图4.4.1 看门狗定时器逻辑结构框图看门狗定时器逻辑结构框图看门狗定时器 WDT的操作(2/4)用户可以通过用户可以通过 WDTCTL 寄存器中的寄存器中的 WDTTMSEL(工(工作模式控制位)作模式控制位)和和 WDTHOLD(密钥控制位)(密钥控制位)位设置位设置 WDT 工作在看门狗模式、定时器模式和低功耗模式。工作在看门狗模式、定时器模式和低功耗模式。看门狗模式看门狗模式PUC后,后,WDT 进入默认状态。它自动配置为看门狗模进入默认状态。它自动配置为看门狗模式,式,SCLK作为时钟源,作为时钟源,复位间隔时间为复位间隔时间为32ms。如果系统不用如果系统不用看门狗功能,
7、应该在程序开始处禁止看门狗功能。看门狗功能,应该在程序开始处禁止看门狗功能。例:例:MOV#WDTPW+WDTHOLD,&WDTCTL;WDTCTL=WDTPW+WDTHOLD;/关闭看门狗关闭看门狗 在看门狗模式下,如果计数器超过了定时时间,就会产生在看门狗模式下,如果计数器超过了定时时间,就会产生复位和激活系统上电清除信号。系统从上电复位的地址重启。复位和激活系统上电清除信号。系统从上电复位的地址重启。用户软件一般都需要进行如下操作:用户软件一般都需要进行如下操作:进行进行WDT的初始化:设置合适的时间。的初始化:设置合适的时间。通过通过WDTSSEL、WDTIS0、WDTIS1、WDTI
8、S2位来选定。位来选定。周期性地对周期性地对WDTCNT清零:防止清零:防止WDT溢出,保证溢出,保证WDT的的正确使用。正确使用。例:例:MOV#WDTPW+WDTCNTCL,&WDTCTL;WDTCTL=WDTPW+WDTCNTCL;/关闭看门关闭看门狗狗看门狗定时器 WDT的操作(3/4)定时器模式定时器模式WDTTMSEL 设置为设置为 1 时,时,WDT 工作在定时器模式。工作在定时器模式。在在定时器模式下,定时间隔到以后,定时器模式下,定时间隔到以后,不会产生不会产生PUC,WDTIFG 标志位置标志位置 1。低功耗模式低功耗模式当不需要看门狗定时器时,可使用当不需要看门狗定时器时
9、,可使用 WDTHOLD 位来位来停止看门狗计数器停止看门狗计数器 WDTCNT,以降低功耗。,以降低功耗。看门狗定时器 WDT的操作(4/4)看门狗定时器寄存器(1/3)计数单元计数单元WDTCNTWDTCNT是不能通过软件直接访问的是不能通过软件直接访问的32位增计数器,由位增计数器,由MSP430所选定的时钟电路产生的固定周期脉冲信号对计数所选定的时钟电路产生的固定周期脉冲信号对计数器进行加法计数,如果计数器事先被预置的初始状态不同,器进行加法计数,如果计数器事先被预置的初始状态不同,那么从开始计数到计数溢出所用的时间就不同。那么从开始计数到计数溢出所用的时间就不同。控制寄存器控制寄存器
10、WDTCTLWDTCTL由两部分组成:高由两部分组成:高8位被用作密钥;低位被用作密钥;低8位是对位是对WDT操作的控制命令。要写入操作操作的控制命令。要写入操作WDT的控制命令,出于的控制命令,出于安全原因必须先正确写入高字节看门狗密钥安全原因必须先正确写入高字节看门狗密钥5AH,如果密钥,如果密钥写错将触发写错将触发PUC系统复位。读系统复位。读WDTCTL时不需要密钥,高字时不需要密钥,高字节读取结果为节读取结果为69H。控制寄存器控制寄存器WDTCTL格式:格式:高高8位:位:WDTPW:Bits158 看门狗密钥,读出值看门狗密钥,读出值0 x69,写时,写时必须为必须为0 x5A,
11、否则将产生,否则将产生PUC。看门狗定时器寄存器(2/3)低低8位:位:WDTHOLD:Bit7 0 打开看门狗,打开看门狗,1 禁用看门狗禁用看门狗 WDTSSEL:Bits65 看门狗时钟源选择看门狗时钟源选择00 SMCLK 01 ACLK10 VLOCLK 11 X_CLK例:例:WDTCTL=WDTPW+WDTSSEL;/选择选择X_CLK时钟源时钟源 WDTTMSEL:Bit4 工作模式选择工作模式选择0 看门狗模式,看门狗模式,1 定时器模式定时器模式例:例:WDTCTL=WDTPW+WDTTMSEL;/定时器模式定时器模式 WDTCNTCL:Bit3 看门狗计数器清零看门狗计数
12、器清零0 无任何操作,无任何操作,1 WDTCNT计数器清计数器清0例:例:WDTCTL=WDTPW+WDTCNTCL;/对看门狗计数器清零对看门狗计数器清零看门狗定时器寄存器(3/3)WDTIS:Bits20 看门狗定时长度选择看门狗定时长度选择000 看门狗时钟源看门狗时钟源/(231)(18h:12m:16s基于基于32.768KHz)001 看门狗时钟源看门狗时钟源/(227)(01h:08m:16s基于基于32.768KHz)010 看门狗时钟源看门狗时钟源/(223)(00h:04m:16s基于基于32.768KHz)011 看门狗时钟源看门狗时钟源/(219)(00h:00m:1
13、6s基于基于32.768KHz)100 看门狗时钟源看门狗时钟源/(215)(1s基于基于32.768KHz)101 看门狗时钟源看门狗时钟源/(213)(250ms基于基于32.768KHz)110 看门狗时钟源看门狗时钟源/(29)(15.625ms基于基于32.768KHz)111 看门狗时钟源看门狗时钟源/(26)(1.95ms基于基于32.768KHz)例:晶振为例:晶振为32768Hz,SMCLK=1MHz,需定时,需定时1s。WDTCTL=WDTPW+WDTTMSEL+WDTCNTCL+WDTIS_4看门狗定时器的中断控制功能用到特殊功能寄存器用到特殊功能寄存器(SFR)的两位:
14、的两位:WDT中断标志中断标志SFR IFG1.0的的WDTIFG;WDT中断使能中断使能SFR IE1.0的的WDTIE。例:例:SFRIE1|=WDTIE;/使能看门狗中断使能看门狗中断在定时器模式下,定时时间到,在定时器模式下,定时时间到,WDTIFG标志置标志置1。当。当WDTIE和和GIE都置位时,都置位时,WDTIFG将请求中断。当中断请求将请求中断。当中断请求被响应时,被响应时,WDTIFG中断标志可自动清除,也可以通过软件中断标志可自动清除,也可以通过软件清除。清除。定时器模式下中断是可屏蔽的,由设定的定时时间到而引定时器模式下中断是可屏蔽的,由设定的定时时间到而引发。而看门狗
15、模式下中断是不可屏蔽的,由受控程序非正常发。而看门狗模式下中断是不可屏蔽的,由受控程序非正常运行引发,前者的优先级低于后者。运行引发,前者的优先级低于后者。看门狗定时器 WDT应用举例(1/2)例:使用看门狗定时功能产生一个方波(周期性的取反例:使用看门狗定时功能产生一个方波(周期性的取反P1.0)程序代码如下:程序代码如下:#include void main(void)WDTCTL=WDT_MDLY_32;/定时周期为定时周期为32msSFRIE1|=WDTIE;/使能使能WDT中断中断P1DIR|=0 x01;/P1.0输出输出_enable_interrupt();/系统中断允许系统中
16、断允许for(;)/进入进入 LPM0_bis_SR_register(LPM0_bits);_no_operation();P1.0MSP430F6638/看门狗中断服务子程序看门狗中断服务子程序#pragma vector=WDT_VECTOR_interrupt void watchdog_timer(void)P1OUT=0 x01;/P1.0取反取反 看门狗定时器 WDT应用举例(2/2)7.2 Timer_ATimer_A 主要内容Timer_A的特性的特性Timer_A的结构的结构Timer_A的工作原理的工作原理定时器工作模式定时器工作模式捕获捕获/比较模块比较模块输出单元输出
17、单元Timer_A中断中断Timer_A的典型应用的典型应用 Timer_A由一个由一个16位定时器和多路捕获位定时器和多路捕获/比较通道组成。比较通道组成。具有具有4种操作模式的异步种操作模式的异步16位定时位定时/计数器。计数器。输入时钟可以有多种选择,可以是慢时钟,快时钟以及输入时钟可以有多种选择,可以是慢时钟,快时钟以及外部时钟。外部时钟。可配置捕获可配置捕获/比较寄存器数多达比较寄存器数多达7个。个。可配置的可配置的PWM(脉宽调制)输出。(脉宽调制)输出。异步输入和同步锁存。不仅能捕获外部事件发生的时间异步输入和同步锁存。不仅能捕获外部事件发生的时间还可锁定其发生时的高低电平。还可
18、锁定其发生时的高低电平。完善的中断服务功能。快速响应完善的中断服务功能。快速响应Timer_A中断的中断向量中断的中断向量寄存器。寄存器。8种输出方式选择。种输出方式选择。可实现串行通讯。可实现串行通讯。MSP430X5XX/6XX系列单片机的系列单片机的Timer _A有以下特性:有以下特性:Timer_A 的特性Timer_A 结构(1/2)下图为下图为 MSP430X5XX/6XX系列单片机的系列单片机的 Timer_A结构结构Timer_A 结构(2/2)定时计数器定时计数器:16 位定时位定时/计数寄存器计数寄存器TAxR时钟源的选择和分频:时钟源的选择和分频:定时器时钟定时器时钟
19、TACLK 可以选择可以选择ACLK,SMCLK 或者来自外部的或者来自外部的 TAxCLK。选择的时钟源,。选择的时钟源,可以通过软件选择分频系数(可以通过软件选择分频系数(1、2、3、4、5、6、7、8)。)。捕获捕获/比较器:比较器:用于捕获事件发生的时间或产生的定时时间用于捕获事件发生的时间或产生的定时时间长度,捕获比较功能的引入主要是为了提高长度,捕获比较功能的引入主要是为了提高 I/O 端口处理事务端口处理事务的能力和速度。的能力和速度。输出单元:输出单元:具有可选的具有可选的8种输出模式,用于产生用户需要种输出模式,用于产生用户需要的输出信号,支持的输出信号,支持 PWM。从上图
20、可以看出,从上图可以看出,Timer_A有以下部分组成:有以下部分组成:Timer_A 工作模式(1/1)MSP430X5XX/6XX系列单片机的系列单片机的 Timer_A共有共有4种计种计数模式,如下表所示:数模式,如下表所示:MCx模式模式说明说明00停止模式停止模式定时器停止定时器停止01增计数模式增计数模式定时器重复从定时器重复从 0 计数到计数到 TAxCCR010连续计数模式连续计数模式定时器器重复从定时器器重复从 0 计数到计数到 0FFFFh11增增/减计数模式减计数模式定时器重复从定时器重复从 0 增计数到增计数到 TAxCCR0 再减计数到再减计数到 0Timer_A 工
21、作模式 停止模式(1/1)停止模式停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。以暂停前的计数方向计数。例如例如,停止模式前,停止模式前,Timer_A工作于增工作于增/减计数模式并减计数模式并且处于下降计数方向,停止模式后,且处于下降计数方向,停止模式后,Timer_A仍然工作于增仍然工作于增/减计数模式。重新计数时,从暂停前的状态开始继续沿着减计数模式。重新计
22、数时,从暂停前的状态开始继续沿着下降方向开始计数。下降方向开始计数。捕获捕获/比较寄存器比较寄存器TAxCCR0用作用作Timer_A增计数模式的周期增计数模式的周期寄存器。寄存器。计数器计数器TAxR与与TAxCCR0的值相等(或的值相等(或TAxR大于大于TAxCCR0的值)时,定时器的值)时,定时器 TAxR将立即重新从将立即重新从 0 开始计数。开始计数。下图说明了增计数模式的计数过程。下图说明了增计数模式的计数过程。Timer_A 工作模式 增计数模式(1/5)Timer_A 工作模式 增计数模式(2/5)运行时改变捕获运行时改变捕获/比较寄存器比较寄存器 TAxCCR0如果新的计数
23、周期大于或者等于旧的计数周期或者大于当如果新的计数周期大于或者等于旧的计数周期或者大于当前计数值,定时器将一直计数到新的计数周期。前计数值,定时器将一直计数到新的计数周期。如果新的计数周期小于当前计数值,计数值将减至如果新的计数周期小于当前计数值,计数值将减至 0。但。但是,在定时器回到是,在定时器回到 0 之前会有一次计数。之前会有一次计数。Timer_A 工作模式 增计数模式(3/5)中断标志位的设置过程,如下图所示:中断标志位的设置过程,如下图所示:当定时器计数到当定时器计数到 TAxCCR0 时,设置标志位时,设置标志位 CCIFG(捕获比(捕获比较中断标志)为较中断标志)为 1,而当
24、定时器从,而当定时器从 TAxCCR0 计数到计数到 0时,设时,设置标志位置标志位 TAIFG(定时器溢出标志)位为(定时器溢出标志)位为 1。Timer_A 工作模式 连续计数模式(1/3)此模式下,定时器从当前值计数到此模式下,定时器从当前值计数到 0FFFFH后,又从后,又从 0 开始开始重新计数。如下图所示。重新计数。如下图所示。此时捕获此时捕获/比较寄存器比较寄存器 TAxCCR0 和其它捕获和其它捕获/比较寄存器的比较寄存器的工作方式相同。工作方式相同。Timer_A 工作模式 连续计数模式(2/3)标志位的设置过程,如下图所示:当定时器从标志位的设置过程,如下图所示:当定时器从
25、 0FFFFh 计计数到数到 0 时,中断标志时,中断标志 TAIFG 置位。置位。Timer_A 工作模式 连续计数模式(3/3)连续计数模式的典型应用:连续计数模式的典型应用:产生多个定时信号:通过中断处理产生多个定时信号:通过中断处理程序在相应的比较寄存器程序在相应的比较寄存器 TAxCCRx上加上一个时间差来实现。上加上一个时间差来实现。这个时间差是当前时刻(即相应的这个时间差是当前时刻(即相应的 TAxCCRx中的值)到下一中的值)到下一次中断发生时刻所经历的时间,如下图所示。次中断发生时刻所经历的时间,如下图所示。Timer_A 工作模式 增/减计数模式(1/3)该模式下,定时器先
26、增计数到该模式下,定时器先增计数到 TAxCCR0的值,然后反向减的值,然后反向减计数到计数到 0。计数周期仍由计数周期仍由 TAxCCR0定义,它是定义,它是 TAxCCR0计数器数值计数器数值的的2倍。倍。增增/减计数模式时计数器计数值的变化情况如下图所示。减计数模式时计数器计数值的变化情况如下图所示。当计数器运行在减计数方向时。当计数器运行在减计数方向时。改变改变 TAxCCR0 的值,定时器将会继续减计数方向到的值,定时器将会继续减计数方向到 0。定时器减到定时器减到 0 后,再按新的计数周期开始计数。后,再按新的计数周期开始计数。当计数器在增计数方向时。当计数器在增计数方向时。如果新
27、的计数周期大于或者等于原来的计数周期,或者比如果新的计数周期大于或者等于原来的计数周期,或者比当前的计数值大,计数器会增计数到新的计数周期,再反向当前的计数值大,计数器会增计数到新的计数周期,再反向计数。计数。如果新的计数周期小于当前的计数值,则计数器将立即开如果新的计数周期小于当前的计数值,则计数器将立即开始减计数。但是,在计数器减计数之前有一个额外的计数。始减计数。但是,在计数器减计数之前有一个额外的计数。Timer_A 工作模式 增/减计数模式(2/3)运行时改变周期寄存器运行时改变周期寄存器 TAxCCR0Timer_A 工作模式 增/减计数模式(3/3)标志位的设置:计数器标志位的设
28、置:计数器 TAxR的值从的值从 TAxCCR0-1增计数到增计数到TAxCCR0时,中断标志时,中断标志 CCIFG置位;当计数器从置位;当计数器从0001h减计减计数到数到0000h时,中断标志时,中断标志 TAIFG置位。如下图所示。置位。如下图所示。Timer_A 捕获/比较模块(1/5)Timer_A有多个相同的捕获有多个相同的捕获/比较模块,为实时处理提供灵比较模块,为实时处理提供灵活的手段,每个模块都可用于捕获事件发生的时间或产生定时活的手段,每个模块都可用于捕获事件发生的时间或产生定时时长。时长。通过通过 TACCTLx中的中的 CAP位选择模式,该模块既可用于捕获位选择模式,
29、该模块既可用于捕获模式,也可用于比较模式。模式,也可用于比较模式。当发生捕获事件或定时时间到都将引起中断。当发生捕获事件或定时时间到都将引起中断。捕获捕获/比较模块的结构,如下图所示。比较模块的结构,如下图所示。Timer_A 捕获/比较模块(2/5)捕获捕获/比较模块的逻辑结构比较模块的逻辑结构Timer_A 捕获/比较模块(3/5)捕获模式捕获模式当当TACCTLx中的中的CAP=1,该模块工作在捕获模式。,该模块工作在捕获模式。每个捕获每个捕获/比较寄存器可以用来记录时间事件,例如:比较寄存器可以用来记录时间事件,例如:测量软件程序所用时间测量软件程序所用时间测量硬件事件之间的时间测量硬
30、件事件之间的时间测量系统频率测量系统频率用用CM1和和CM0 位选择捕获条件,可以选择禁止捕获、上位选择捕获条件,可以选择禁止捕获、上升沿捕获、下降沿捕获或者上升沿下降沿都捕获。升沿捕获、下降沿捕获或者上升沿下降沿都捕获。当捕获完成后,定时器的值被复制到当捕获完成后,定时器的值被复制到 TAxCCRn 寄存器,寄存器,并且中断标志并且中断标志 CCIFG 置位。置位。如果总的中断允许位如果总的中断允许位 GIE允许,允许,相应的中断允许位相应的中断允许位CCIE也允许,则将产生中断请求。如下图也允许,则将产生中断请求。如下图所示:所示:Timer_A 捕获/比较模块(4/5)捕获模式的信号:捕
31、获模式的信号:Timer_A 捕获/比较模块(5/5)当当TACCTLx中的中的CAP=0,该模块工作在比较模式。,该模块工作在比较模式。比较模式主要用于为软件或应用硬件产生定时,还可为比较模式主要用于为软件或应用硬件产生定时,还可为D/A转换功能或者马达控制等各种用途产生脉宽调制(转换功能或者马达控制等各种用途产生脉宽调制(PWM)输出信号。输出信号。在计数器在计数器TAxR计数到计数到TAxCCRn的值时:的值时:中断标志中断标志 CCIFG 置位置位内部信号内部信号 EQUx=1EQUx 根据输出模式影响输出根据输出模式影响输出输入信号输入信号 CCI 被锁存在被锁存在 SCCI比较模式
32、比较模式Timer_A 输出单元(1/5)每个捕获每个捕获/比较模块都包含一个输出单元,用于产生输出信比较模块都包含一个输出单元,用于产生输出信号。号。每个输出单元有每个输出单元有8种工作模式,可产生基于种工作模式,可产生基于EQUx的多种信的多种信号。号。除模式除模式0外,其他模式的输出都在定时器时钟上升沿时发生外,其他模式的输出都在定时器时钟上升沿时发生变化。变化。输出模式输出模式2,3,6,7不适合输出单元不适合输出单元0,因为,因为EQUx=EQU0。输出单元在输出控制位输出单元在输出控制位OUTMODx的控制下,有的控制下,有8种输出模种输出模式输出信号。这些模式与式输出信号。这些模
33、式与TAxR、TACCTLx、TAxCCR0的值的值有关,如下表所示。有关,如下表所示。Timer_A 输出单元(2/5)OUTMODx模式模式说明说明000输出模式输出模式0:输出输出输出信号取决于寄存器输出信号取决于寄存器 TACCTLx 中的中的 OUT位。当位。当OUT位更新时,输出信号立即更新。位更新时,输出信号立即更新。001输出模式输出模式1:置位置位输出信号在输出信号在TAxR等于等于TAxCCRn时置位,并保持置位时置位,并保持置位到定时器复位或选择另一种输出模式为止。到定时器复位或选择另一种输出模式为止。010输出模式输出模式2:翻转翻转/复位复位输出输出信号信号在在TAx
34、R的值等于的值等于TAxCCRn时翻转,当时翻转,当TAxR的值等于的值等于TAxCCR0时复位。时复位。011输出模式输出模式3:置位置位/复位复位输出输出信号信号在在TAxR的值等于的值等于TAxCCRn时置位,当时置位,当TAxR的值等于的值等于TAxCCR0时复位。时复位。100输出模式输出模式4:翻转翻转输出输出信号信号在在TAxR的值等于的值等于TAxCCRn时翻转,输出周时翻转,输出周期是定时器周期的期是定时器周期的2倍。倍。101输出模式输出模式5:复位复位输出输出信号信号在在TAxR的值等于的值等于TAxCCRn时复位,并保持时复位,并保持低电平直到选择另一种输出模式。低电平
35、直到选择另一种输出模式。110输出模式输出模式6:翻转翻转/置位置位输出输出信号信号在在TAxR的值等于的值等于TAxCCRn时翻转,当时翻转,当TAxR值等于值等于TAxCCR0时置位。时置位。111输出模式输出模式7:复位复位/置位置位输出输出信号信号在在TAxR的值等于的值等于TAxCCRn时复位,当时复位,当TAxR的值等于的值等于TAxCCR0时置位。时置位。Timer_A 输出单元(3/5)定时器在增计数模式的输出波形定时器在增计数模式的输出波形在增计数模式下,当计数器在增计数模式下,当计数器TAxR增加到增加到TAxCCRx或从或从TAxCCR0计数到计数到0时,时,OUTn信号
36、按选择的输出模式发生变化。信号按选择的输出模式发生变化。如下图所示。如下图所示。Timer_A 输出单元(4/5)定时器在连续计数模式的输出波形定时器在连续计数模式的输出波形其波形与增计数模式一样,只是计数器在增计数到其波形与增计数模式一样,只是计数器在增计数到TAxCCR0后还要继续增计数到后还要继续增计数到0FFFFH,这样就延长了计数,这样就延长了计数器计数到器计数到TAxCCR1的数值后的时间。如下图所示。的数值后的时间。如下图所示。Timer_A 输出单元(5/5)定时器在增定时器在增/减计数模式的输出波形减计数模式的输出波形这时的各种输出波形与定时器增计数模式或连续计数模这时的各种
37、输出波形与定时器增计数模式或连续计数模式不同。当定时器在任意计数方向上等于式不同。当定时器在任意计数方向上等于TAxCCRx时,时,OUTn信号都按选择的输出模式发生改变。如下图所示。信号都按选择的输出模式发生改变。如下图所示。Timer_A 中断(1/2)Timer_A中断中断可以来自捕获可以来自捕获/比较寄存器,也比较寄存器,也可由计数器溢可由计数器溢出引起。每个捕获出引起。每个捕获/比较模块可独立编程,由捕获比较模块可独立编程,由捕获/比较外部比较外部信号以产生中断。信号以产生中断。Timer_A模块使用两个中断向量:模块使用两个中断向量:一个单独分配给捕获一个单独分配给捕获/比较寄存器
38、比较寄存器TAxCCR0;另一个作为共用中断向量用于定时器和其他的捕获另一个作为共用中断向量用于定时器和其他的捕获/比较寄存器。比较寄存器。TAxCCR0中断如下图所示:中断如下图所示:Timer_A 中断(2/2)TAxCCR1TAxCCR6按照优先次序共用一个中断向量,按照优先次序共用一个中断向量,属于多源中断。中断向量寄存器用于确定哪个标志请求中断。属于多源中断。中断向量寄存器用于确定哪个标志请求中断。TAxCCR1TAxCCR6中断,如下图所示:中断,如下图所示:Timer_A寄存器(1/10)寄存器寄存器缩写缩写读写类型读写类型访问形式访问形式初始状态初始状态Timer_A控制器控制
39、器TACTL 读读/写写字字0000hTimer_A捕获捕获/比较控制器比较控制器TACCTL 读读/写写字字0000hTimer_A计数器计数器TAxR 读读/写写字字0000hTimer_A捕获捕获/比较比较寄存器寄存器TAxCCR 读读/写写字字0000hTimer_A中断向量中断向量寄存器寄存器TAxIV 读读/写写字字0000hTimer_A扩展扩展寄存器寄存器TAxEX 读读/写写字字0000hTACTL,Timer_A控制寄存器控制寄存器Timer_A寄存器(2/10)TASSELx:Bits9-8 Timer_A时钟源选择00 TACLK01 ACLK10 SMCLK11 MC
40、LKIDx:Bits7-6 输入分频器。这些位和IDEXx位一起选择输入时钟的分频。00 /101 /210 /411 /8MCx:Bits5-4 模式控制。00 停止模式:定时器是停止的。01 增计数模式:定时器增计数到TAxCCR010 连续计数模式:定时器增计数到0FFFFh11 增减计数模式:定时器增计数到TAxCCR0 然后减计到0000hTACLR:Bit2 清除位。置位该位将复位TAxR,TAxCLK 分频和计数方向。该位会自动复位,且读出的值为0。TAIE:Bit1 中断允许位。该位使能TAIFG 中断请求。0 中断禁止1 中断使能TAIFG:Bit0 中断标志位。0 无中断挂
41、起1 有中断挂起Timer_A寄存器(3/10)TAxR,Timer_A计数器计数器TARx:Bits15-0 Timer_A计数值。TARx寄存器是Timer_A的计数器。Timer_A寄存器(4/10)TACCTLx,捕获,捕获/比较控制寄存器比较控制寄存器CMx:Bits15-14 捕获模式。00 禁止捕获01 上升沿捕获10 下降沿捕获11 上升沿与下降沿都捕获CCISx:Bits13-12 捕获/比较输入选择。这些位选择TAxCCRx 输入信号。参阅具体器件的数据手册,选择信号的连接。00 CCIxA01 CCIxB10 GND11 VccSCS:Bit11 同步捕获源。该位用来同步
42、定时器时钟和捕获信号。0 异步捕获1 同步捕获Timer_A寄存器(5/10)SCCI:Bit10 同步捕获/比较输入。所选择的CCI 输入信号由EQUx锁存,并可通过该位读出。CAP:Bit8 捕获模式0 比较模式1 捕获模式OUTMODx:Bits7-6 输出模式。由于EQUx=EQU0,模式2,3,6 和7 不适用于TAxCCR0000 OUT位的值001 置位010 翻转/复位011 置位/复位100 翻转101 复位110 翻转/置位111 复位/置位CCIE:Bit4 捕获/比较中断使能。该位使能相应的CCIFG 标志的中断请求。0 中断禁止1 中断使能CCI:Bit3 捕获/比较
43、输入。选择的输入信号能够通过该位读出。Timer_A寄存器(6/10)OUT:Bit2 输出信号。对于模式0,该位直接控制输出状态。0 输出低电平1 输出高电平COV:Bit1 捕获溢出标志。该位表示一个捕获溢出发生。COV位必须软件复位。0 没有捕获溢出发生1 捕获溢出发生CCIFG:Bit0 捕获/比较中断标志0 没有中断挂起1 有中断挂起Timer_A寄存器(7/10)TACCRx,捕捉,捕捉/比较寄存器比较寄存器在捕获模式,在捕获模式,当满足捕获条件,硬件自动将计数器当满足捕获条件,硬件自动将计数器TAxR数据写入数据写入TACCRn。在比较模式,在比较模式,TACCRn与与TAxR比
44、较。比较。如果测量某窄脉冲(高电平)的脉冲宽度,可定义上升沿和下降沿都如果测量某窄脉冲(高电平)的脉冲宽度,可定义上升沿和下降沿都捕获。捕获。在上升沿时在上升沿时,捕获一个定时器数据,这个数据在捕获寄存器中读,捕获一个定时器数据,这个数据在捕获寄存器中读出;出;再等待下降沿到来再等待下降沿到来,在下降沿时又捕获一个定时器数据;那么两次,在下降沿时又捕获一个定时器数据;那么两次捕获的定时器数据差就是窄脉冲的高电平宽度。其中捕获的定时器数据差就是窄脉冲的高电平宽度。其中CCR0经常用作周期经常用作周期寄存器,其它寄存器,其它CCRx相同。相同。该寄存器可读可写。该寄存器可读可写。Timer_A寄存
45、器(8/10)TAIV,Timer_A中断向量寄存器中断向量寄存器TAIVx:Bits15-0 Timer_A中断向量值。TAIV值中断来源中断标志中断优先级00h 没有中断02h 捕获/比较1 TAxCCR1 CCIFG 最高04h 捕获/比较2 TAxCCR2 CCIFG06h 捕获/比较3 TAxCCR3 CCIFG08h 捕获/比较4 TAxCCR4 CCIFG0Ah 捕获/比较5 TAxCCR5 CCIFG0Ch 捕获/比较6 TAxCCR6 CCIFG0Eh 定时器溢出TAxCTL TAIFG 最低Timer_A寄存器(9/10)TAEX,Timer_A扩展寄存器扩展寄存器IDEX
46、:Bits2-0 输入分频器扩展。这些位和IDx位一起选择输入时钟的分频。000 /1001 /2010 /3011 /4100 /5101 /6110 /7111 /8Timer_A寄存器(10/10)Timer_A应用实现异步串行通信(1/5)Timer_A具有实现异步串行通信的一些特征具有实现异步串行通信的一些特征能够自动检测起始位能够自动检测起始位可以硬件方式产生波特率,范围从可以硬件方式产生波特率,范围从75115200波特波特硬件锁存接收和发送的数据硬件锁存接收和发送的数据全双工方式全双工方式捕获功能可以捕捉选定输入引脚的状态的变化,它可以选择捕捉捕获功能可以捕捉选定输入引脚的状态
47、的变化,它可以选择捕捉上升沿、下降沿、前后沿。如果捕捉到了相应的变化,则定时器计上升沿、下降沿、前后沿。如果捕捉到了相应的变化,则定时器计数值将被复制到捕获比较寄存器数值将被复制到捕获比较寄存器 CCRx 中,并会产生相应的中断中,并会产生相应的中断。在串行通信中正是利用捕获功能的特点来捕捉起始位的信息。在串行通信中正是利用捕获功能的特点来捕捉起始位的信息。另外,采用捕获另外,采用捕获/比较功能,通过控制寄存器的比较功能,通过控制寄存器的SCCIx位将引位将引脚上的数据移入存储器可以实现接收功能。脚上的数据移入存储器可以实现接收功能。捕获定时器数据,即接收信号的下降沿可识别接收开始时间捕获定时
48、器数据,即接收信号的下降沿可识别接收开始时间,然后同一个捕获,然后同一个捕获/比较模块改为比较功能。比较模块改为比较功能。Timer_A应用实现异步串行通信(2/5)比较功能是借助比较器不断地将比较功能是借助比较器不断地将 CCRx 中的设定值与定时器中的中的设定值与定时器中的计数值相比较,当二者相等时就产生中断,并产生设定的输出,利计数值相比较,当二者相等时就产生中断,并产生设定的输出,利用比较功能可以获得精确的时间间隔,用比较功能可以获得精确的时间间隔,利用该特性可以构造一个精利用该特性可以构造一个精确的波特率发生器,为串行通信提供时间基准。确的波特率发生器,为串行通信提供时间基准。利用比
49、较功能,通过输出单元从选定的引脚上移出数据,可利用比较功能,通过输出单元从选定的引脚上移出数据,可以实现发送功能。每次在中断程序中设定数据可确保波特率,以实现发送功能。每次在中断程序中设定数据可确保波特率,用模式用模式1使输出引脚置位,用模式使输出引脚置位,用模式5使引脚复位。使引脚复位。Timer_A应用实现异步串行通信(3/5)Timer_A应用实现异步串行通信(4/5)当选定为半双工通信时,需要同一个捕获当选定为半双工通信时,需要同一个捕获/比较模块。用比较模块。用两个捕获两个捕获/比较模块可实现全双工模式。在半双工模式中,接比较模块可实现全双工模式。在半双工模式中,接收和发送必须依次进
50、行,且可以只用一条数据线。在全双工收和发送必须依次进行,且可以只用一条数据线。在全双工模式,接收和发送可以并行进行。异步通信处理时序如下图模式,接收和发送可以并行进行。异步通信处理时序如下图所示。所示。Timer_A应用实现异步串行通信(5/5)PWM信号是一种具有固定周期不定占空比的数字信号,如下图所示:信号是一种具有固定周期不定占空比的数字信号,如下图所示:如果如果Timer_A的计数器工作在增计数方式,输出采用输出模式的计数器工作在增计数方式,输出采用输出模式 7(复位(复位/置位模式),则可利用寄存器置位模式),则可利用寄存器TAxCCR0控制控制PWM波形的周期,用寄存器波形的周期,