MSP430:定时器学习TimerA

4. 定时器TA

一、时钟源
1、时钟源:ACLK/SMCLK 外部TACLK/INCLK
2、分频:1/2/4/8 当 (注:TACLR 置位时,分频器复位)

二、计数模式
通过设置MCx可以设置定时器的计数模式

1、停止模式:停止计数
2、单调增模式:定时器循环地从0增加到TACCR0值
周期 :TACCR0
CCIFG :Timer计到TACCR0值时触发
TAIFG :Timer计到0时触发
3、连续模式 :定时器循环从0连续增加到0xFFFF
周期 :0x10000
TAIFG :Timer计到0时触发
4、增减模式 :定时器增计数到TACCR0 再从 TACCR0 减计数到 0
周期 :TACCR0值的2倍
CCIFG :Timer计到TACCR0值时触发
TAIFG :Timer计到0时触发

三、定时器A TACCRx 比较模式 (用于输出和产生定时中断)
1、设置:CAP=0选择比较
2、输出信号:比较模式用于选择 PWM 输出信号或在特定的时间间隔中断。当 TAR 计数
到 TACCRx 的值时:
a、中断标志 CCIFG=1;
b、内部信号 EQUx=1;
c、EQUx 根据输出模式来影响输出信号
d、输入信号 CCI 锁存到 SCCI
每个捕获比较模块包含一个输出单元。输出单元用于产生如 PWM 这样的信号。每个输出单元可以根据
EQU0 和 EQUx 产生 8 种模式的信号。

3、中断
TimerA 有 2 个中断向量:
a、TACCR0 CCIFG 的 TACCR0 中断向量
b、所有其他 CCIFG 和 TAIFG 的 TAIV 中断向量
在捕获模式下,当一个定时器的值捕获到相应的 TACCRx 寄存器时, CCIFG 标志置位。
在比较模式下,如果 TAR 计数到相应的 TACCRx 值时,CCIFG 标志置位。软件可以清除或置
位任何一个 CCIFG 标志。当响应的 CCIE 和 GIE 置位时, CCIFG 标志就会产生一个中断。
c、TACCR0 CCIFG 标志拥有定时器 A 的最高中断优先级,并有一个专用的中断向量,
当进入 TACCR0 中断后,TACCR0 CCIFG 标志自动复位。
d、TACCR1 CCIFG, TACCR2 CCIFG, 和 TAIFG 标志共用一个中断向量。中断向量寄存器 TAIV
用于确定它们中的哪个要求响应中断。最高优先级的中断在 TAIV 寄存器中产生一个数字(见
寄存器说明),这个数字是规定的数字,可以在程序中识别并自动进入相应的子程序。禁止定时
器 A 中断不会影响 TAIV 的值。
对 TAIV 的读写会自动复位最高优先级的挂起中断标志。如果另一个中断标志置位,在结
束原先的中断响应后会,该中断响应立即发生。例如,当中断服务子程序访问 TAIV 时,如果
TACCR1 和 TACCR2 CCIFG 标志位置位,TACCR1 CCIFG 自动复位。在中断服务子程序的 RETI
命令执行后,TACCR2 CCIFG 标志会产生另一个中断。

四、TimerA的捕获模式
1、设置:CAP=1选择捕获, CCISx位设置捕获的信号源,CMx位选择捕获的沿,上升,下降,或上升下降都
捕获。
2、如果一个第二次捕获在第一次捕获的值被读取之前发生,捕获比较寄存器就会产生一个溢出逻辑,COV
位在此时置位,如图 8-11,COV 位必须软件清除。

五、寄存器
1、TACTL:TimerA控制寄存器

TASSELx:TA时钟源选择
0:TACLK;1:ACLK;2:SMCLK;3:INCLK
IDx: 输入分频,分时钟源分频再输入TimerA
0/1/2/3:1/2/4/8 分频
MCx: 模式控制
0:停止定时器;1:增模式,定时器计数到TACCR0;
2:连续模式,定时器计数到0xFFFF;3:增减模式,0->TACCR0->0
TACLR: 定时器清零位。该位置位会复位 TAR,时钟分频和计数方向。TACLR位会自动复位并读出值为0
TAIE: TA 中断允许。该位允许 TAIFG 中断请求
0:中断禁止;1:中断允许
TAIFG: TA中断标记
0:无中断挂起;1:中断挂起

2、TAR:TimerA计数寄存器


3、TACCTLx:捕获比较控制寄存器

CMx:捕获模式
0:不捕获;1:上升沿捕获;2:下降沿捕获 ;3:上升和下降沿都捕获
CCISx:捕获比较选择,该位选择 TACCRx 的输入信号
0:CCIxA;1:CCIxB;2:GND;3:VCC
SCS:同步捕获源,该位用于将捕获通信和时钟同步
0:异步捕获;1:同步捕获
SCCI:同步的捕获/比较输入,所选择的 CCI 输入信号由 EQUx 信号锁存,并可通过该位读取
CAP:捕获模式
0:比较模式;1:捕获模式
OUTMODx:输出模式位。由于在模式 2,3,6 和 7 下 EQUx= EQU0,因此这些模式对 TACCR0 无效
0:OUT 位的值;1:置位;2:翻转/复位;3:置位/复位
4:翻转;5:复位;6:翻转/置位;7:复位/置位
CCIE:捕获比较中断允许位,该位允许相应的 CCIFG 标志中断请求
0:中断禁止;1:中断允许
CCI:捕获比较输入。所选择的输入信号可以通过该位读取
OUT:对于输出模式 0,该位直接控制输出状态
0:输出低电平;1:输出高电平
COV:捕获溢出位。该位表示一个捕获溢出发生。COV 必须由软件复位。
0:没有捕获溢出发生;1:有捕获溢出发生
CCIFG:捕获比较中断标志位
0:没有中断挂起;1:有中断挂起

4、TAIV:TimerA中断向量寄存器

寄存器的值:
0:无中断挂起;
2:捕获比较1 TACCR1 CCIFG;
4:捕获比较2 TACCR2 CCIFG;
0xA:定时器溢出 TAIFG

转载于:https://www.cnblogs.com/wwjdwy/p/3156220.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用msp430f5529定时器定时1秒,可以按照以下步骤进行设置: 1. 配置定时器的时钟源和分频器,使其产生1秒的定时器中断。 2. 编写中断服务程序,当定时器中断发生时,执行需要的操作。 3. 启用定时器中断,并开始计时。 具体的代码实现可以参考msp430f5529的用户手册和相关的示例程序。 ### 回答2: MSP430F5529是TI公司推出的一款高性能低功耗微控制器,内部集成多个模块,其中包括多个定时器模块。通过对MSP430F5529定时器的配置,可以实现计时、计数、生成定时中断等功能。 要定时1s,我们可以选择通过Timer A来实现。Timer A是MSP430F5529中最为常用的定时器模块,可选择不同的时钟源进行计数。由于我们需要计时的时间是1s,我们可以将Timer A的时钟源选择为ACLK(外部低速时钟源),然后设置计数器上限为32767(即32KHz的计数频率下,1秒的计数值),再设置模块为连续模式,启动定时器计数。 在程序中,可以通过配置Timer A模块的控制寄存器来实现1s定时,具体代码如下: ``` #include "msp430f5529.h" //包含MSP430F5529的头文件 void init_timerA(void) { //配置ACLK为定时器时钟源 TA0CTL = TASSEL_1; //设置连续模式,定时1s TA0CCTL0 = CCIE; //开启比较器中断 TA0CCR0 = 32767; TA0CTL |= MC_2; //启动计数 } //Timer A0 中断服务函数 #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A0_ISR (void) { //定时器时间到,执行相应的操作 //... } void main(void) { //初始化MSP430F5529 //... init_timerA(); //初始化Timer A0模块 //... //进入低功耗模式,等待Timer A0中断事件 _bis_SR_register(LPM0_bits + GIE); //... } ``` 通过以上代码,当Timer A计数器达到设定上限时,将会发生中断事件,执行程序中的中断服务函数,实现1s的定时功能。当然,在使用定时器模块时还需要注意非常多的细节,如时钟源的选择、计数器上限的设置、中断优先级等等,需要认真仔细地进行配置,才能保证定时器正常工作。 ### 回答3: msp430f5529是德州仪器公司(TI)推出的一款高性能微控制器,它具有低功耗、高集成度等优点,广泛应用于电子设备控制领域。在实际应用中,往往需要使用定时器来进行时间计数和控制,因此,我们需要对msp430f5529的定时器进行设置,使其能够精确地定时1秒。 要实现定时器定时1秒的功能,首先需要设置定时器的时钟源和计数器初值。在msp430f5529中,主时钟为5MHz,可通过选择不同的分频器来确定定时器时钟源,以便实现不同的计数时间。例如,设置分频比为128,则每1个主时钟周期,定时器只计数1个时钟周期,这样就可以实现1秒的精确定时。 在具体的程序实现中,可以采用中断方式来触发定时器计数器。当计数器满足预设的计数值(即1秒)时,会自动触发定时器中断,从而执行相应的操作。例如,可以设置LED灯在1秒的时间内闪烁一次,或者呼叫蜂鸣器发出蜂鸣声等等。 以上就是如何利用msp430f5529的定时器实现1秒精确定时的方法。当然,具体的实现方法还需要根据不同的应用要求进行具体的软件开发和硬件设计,确保系统实现稳定、可靠的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值