打印

初学msp430,请教高手,还望指教

[复制链接]
1126|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jie1095|  楼主 | 2014-3-9 15:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用CCR0中断可以,但是换成CCR1中断就不行了,难道CCR0与CCR1中断有什么不同?看了手册也没找到。还望高手指点啊!多谢了!





/***************************************************
程序功能:控制8个LED闪烁,用于测试下载功能是否正常
---------------------------------------------------
测试说明:观察LED闪烁
***************************************************/
#include  <msp430x14x.h>

/****************主函数****************/
void main(void)
{  
  
    WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
   
    P6DIR |= BIT2;P6OUT |= BIT2;    //关闭电平转换
    CCTL1 = CCIE;                   //使能CCR1中断
    CCR1 = 2047;                    //设定周期0.5S               
    TACTL = TASSEL_1 + ID_3 + MC_1; //定时器A的时钟源选择ACLK,增计数模式
    P2DIR = BIT5;                   //设置P2口方向为输出
    P2OUT = BIT5;

    _EINT();                        //使能全局中断
    LPM3;                           //CPU进入LPM3模式
}

/*******************************************
函数名称:Timer_A
功    能:定时器A的中断服务函数
参    数:无
返回值  :无
********************************************/
#pragma vector = TIMERA1_VECTOR
__interrupt void Timer_A (void)
{  
    P2OUT ^= BIT5;                  //P2口输出取反
}

相关帖子

沙发
dirtwillfly| | 2014-3-9 21:30 | 只看该作者
CCRx是捕获/比较寄存器
用做捕获时:捕获的同时TAR的值会传给CCRx,用来测算周期是很好的方法,一般捕获用法时无须设置参数。
用作比较时:CCR0一般用来设置输出电平的转换时机,就是TAR计数到CCR0时输出电平发生相应的变化(输出方式可以设置);也可以将CCR0设置为最大值,此时CCRx(x:1或2)用来设置输出电平转换的时机,即TAR计数到CCRx时输出电平转换,计数到CCR0时重新开始计数。

使用特权

评论回复
板凳
jie1095|  楼主 | 2014-3-9 22:37 | 只看该作者
dirtwillfly 发表于 2014-3-9 21:30
CCRx是捕获/比较寄存器
用做捕获时:捕获的同时TAR的值会传给CCRx,用来测算周期是很好的方法,一般捕获用 ...

能解释下我的程序吗?为什么我用CCR0中断可以,但是换成CCR1中断就不行了?非常感谢!

使用特权

评论回复
地板
dirtwillfly| | 2014-3-9 22:43 | 只看该作者
本帖最后由 dirtwillfly 于 2014-3-9 22:46 编辑

CCR1不会在中断后自动清除中断标志位,需要读下TAIV来清中断标志位

使用特权

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

本版积分规则

8

主题

628

帖子

1

粉丝