打印

基于msp430g2553(launchpad)的定时器程序

[复制链接]
989|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ITG|  楼主 | 2014-7-4 16:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
include  <msp430g2553.h>

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P1SEL |= 0x06;                            // P1.1 - P1.2 option select,外围模块的功能
  P1DIR |= 0xff;                            // P1.0 - P1.2 outputs
  CCTL0 = OUTMOD_4 + CCIE;                  // CCR0 toggle, interrupt enabled
  CCTL1 = OUTMOD_4 + CCIE;                  // CCR1 toggle, interrupt enabled
  TACTL = TASSEL_2 +  MC_2 + TAIE;          // SMCLK, Contmode, int enabled

  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
}

// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0 (void)
{
  CCR0 += 60000;                              // Add Offset to CCR0
  P1OUT ^= BIT0;
}

// Timer_A2 Interrupt Vector (TA0IV) handler
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A1(void)
{
  switch( TA0IV )
  {
  case  2: CCR1 += 30000;                    // Add Offset to CCR1
           P1OUT ^= BIT6;
           break;
  case  4: CCR2 += 60000;                    // Add Offset to CCR1
           P1OUT ^= BIT4;
           break;         
特别注意定时器服务程序:#pragma vector=TIMER0_A0_VECTOR与普通的msp430程序书写不同

相关帖子

沙发
51xlf| | 2014-7-5 00:11 | 只看该作者
不错

使用特权

评论回复
板凳
风之牧| | 2014-8-29 16:59 | 只看该作者
两个中断向量:TACCR0 CCIFG 的 TACCR0 中断向量                         TIMER0_A0_VECTOR
              所有的其他 CCIFG 标志和 TAIFG 的 TAIV 中断向量              TIMER0_A1_VECTOR
就是这个意思

使用特权

评论回复
地板
kaizhiyu| | 2014-8-29 21:44 | 只看该作者
很不错   

使用特权

评论回复
5
SodaW| | 2014-9-17 11:33 | 只看该作者
为什么CCRx都用 +=。不直接用=呢?系统时钟可以不配置吗?
P1DIR |= 0xff; 这个不是P1口全部都是输出吗?

使用特权

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

本版积分规则

ITG

3

主题

5

帖子

0

粉丝