打印

【转】MSP430 g2553 Timer_A0 定时器

[复制链接]
405|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
风萧寒|  楼主 | 2016-11-15 23:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[cpp] view plain copy


  • </pre><pre name="code" class="cpp">  

1,MSP430g2553具有两个16位的定时器:Timer0_A Timer1_A。分别具有三个捕捉/比较寄存器,具有输入捕捉,输出比较功能。可以产生定时中断,也可以产生PWM。

2,定时器A大致可分为四个功能模块:计数器、比较/捕获寄存器0、比较/捕获寄存器1、比较/捕获寄存器2.计数器是主体,它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断。那怎么实现定时功能呢?这就要靠三个比较/捕获寄存器了以后用CCRx表示。CCR0比较特殊,通过他可以改变计数器的最大计数值,也就是当计数器计数到CCR0的值时自动会将计数器清零。

3,使用增计数模式实现定时器,计数器计数到CCR0,产生中断,再清零计数。

4,注意有两个中断,一个是CCIE(捕获比较中断),还有一个是TAIE(定时器溢出中断),开启CCIE

[cpp] view plain copy


  • <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">void Timer_A0_1_init()  //TA0.1定时器</span>  

[cpp] view plain copy


  • {  
  • TACTL = TASSEL_2+MC_1+ID_3+TACLR;//SMCLK,增计数 ,8分频 ,清零  
  • TACCTL0 |= CCIE;//输出模式为复位/置位  
  • CCR0=12500;//时钟频率为1/8MHZ,0.5hz  
  • }  


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

134

帖子

3

粉丝