新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > MSP430F149 TIMER_A(一)——16位定时计数

MSP430F149 TIMER_A(一)——16位定时计数

作者: 时间:2016-11-24 来源:网络 收藏
TIMER_A有四个可选时钟源,为了方便一般选择ACLK和SMCLK,经过分频器产生一个时基,其结构图如下:

本文引用地址:https://www.eepw.com.cn/article/201611/320876.htm



TIMER_A有三种定时/计数方式:

(1).增计数模式:计数周期:TAR从0增加到TACCR0,



(2).连续计数模式:计数周期:TAR从0增加到0xffff,



(3).增减计数模式:计数周期:TAR从0增加到TACCR0然后再从TACCR0减到0



由上图可见TIMER_A的中断标志有两个,分别是TAIFG和CCIFG。TACTL中的TAIE允许产生TAIFG中断标志,中断入口是TIMERA_1 VECTOR即0FFEAh,此入口有三个中断源,由TAIV的值决定。

在IAR中,进入中断服务的方式如下:

#pragma vector=中断向量的入口地址

__interrupt void函数名(类型)

比如:

#pragma vector=0x14
__interrupt void my_handler(void);
TIMERA0_VECTOR是单中断源的,因此不需要判断
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
{
P4OUT^=BIT0;
}
既然TIMERA1_VECTOR由三种中断源,则需要判断,例子如下
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1 (void)
{
switch(TAIV)
{
case 0x02:break;
case 0x04:break;
case 0x0a:P4OUT^=BIT0;break;
}
}


评论


技术专区

关闭