×
单片机 > 单片机程序设计 > 详情

初学MSP430F5529定时器

发布时间:2020-08-21 发布时间:
|

之前一直感觉定时器有点难,但其实后来发现更多的是中断那块没太懂,中断以后会说的。先简单看下定时器吧。


一、基本

1.在user’s guide上看到的5529其实有3种定时器,ABD,这三种好像确实有些区别的,但是目前就只看A感觉就够了。

2.Timer_A是具有四种操作模式的16位定时器,7个比较器/捕获器

3.能够输出PWM波,具有8中PWM波形,但是要注意的是,这种输出只能在外围功能模块里使用,即之前说过的SEL。比如P1.2能够输出Timer_A0的比较器/捕获器1的波形,而在其他管脚上,就没有办法直接输出这种PWM波形。所以如果这个管脚被占用的话,或是不想用这个来整,其实用中断做PWM波也挺好用的。

4.能实现串行通信(其实我不太懂这块说的什么意思,也好像没用到,之后见到再补上吧)

5.捕获模式和比较模式的区别?

捕获模式是捕获上升沿和下降沿触发中断,而比较器是将一个值储存到CCR寄存器里面,将计数器的值和CCR相比较从触发中断。


二、寄存器

话不多说,先看寄存器吧

1、TAxCTL

(1)TASSEL:时钟选择,可以选择TAxCLK,ACLK,SMCLK,INCLK

(2)ID:分频系数

(3)MC:模式选择

一共有四种模式,UP模式:一直加到CCR0,再到0;

Continuous莫斯:一直加到FFFF,再到0

UP/DOWN模式,加到CCR0,再减到0;

Stop模式?

(4)TACLR:清零,需要注意的是TACLR会将TAxR寄存器,分频系数都清零

(5)TAIE:中断使能

(6)TAIFG:中断标志位

2、TAxR

计数寄存器

3、TAxCCTLn

CAP:0比较模式1捕获模式

OUTMOD:

有多种输出模式,可以输出多种类型的PWM波,当然这个是从对应的管脚中输出。 这个可以user’s guide里面看。

CCIE:中断使能

COV:比较溢出?不是很懂。

CCIFG:中断标志位

其他的感觉母亲用不太到。多数会在PUC的时候设置好

4、TAxCCRn

CCR寄存器。以u模式为例,就是当计数到这个值的时候,会触发中断。CCR0优先级最高。有单独的一个中断向量。CCR1以后的都共用一个中断向量。同时在UP模式中,计数到CCR0会 从0开始。

5、TAxIV

中断源标志寄存器。可以认为CCR1和CCR6的中断标志存在这个里面,在写中断函数的时候,这几个CCR需要用TAXIV判断是哪一个中断了。

找了一个例程

#pragma vector=TIMER1_A1_VECTOR

__interrupt void TIMER1_A1_ISR(void)

{

switch(__even_in_range(TA1IV,14))

{

case 0: break; // No interrupt

case 2: break; // CCR1 not used

case 4: break; // CCR2 not used

case 6: break; // reserved

case 8: break; // reserved

case 10: break; // reserved

case 12: break; // reserved

case 14: P1OUT ^= 0x01; // overflow

break;

default: break;

}

}

这一段就是判断TA1IV中的值。然后在相应的值里面做操作。如果不用这个的话是没有办法做出来中断的!

6、TAxEX0

emmm好像没有用到过


三、基本步骤

1、设置时钟

2、TAxCTL选择模式、时钟等等

3、TAxCCRn设置CCR

4、设置中断

5、中断函数

关键字:初学  MSP430F5529  定时器

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机int字节的实现