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

2019-08-03 17:11发布

我用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口输出取反
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
dirtwillfly
1楼-- · 2019-08-03 20:38
CCRx是捕获/比较寄存器
用做捕获时:捕获的同时TAR的值会传给CCRx,用来测算周期是很好的方法,一般捕获用法时无须设置参数。
用作比较时:CCR0一般用来设置输出电平的转换时机,就是TAR计数到CCR0时输出电平发生相应的变化(输出方式可以设置);也可以将CCR0设置为最大值,此时CCRx(x:1或2)用来设置输出电平转换的时机,即TAR计数到CCRx时输出电平转换,计数到CCR0时重新开始计数。
jie1095
2楼-- · 2019-08-03 21:16
dirtwillfly 发表于 2014-3-9 21:30
CCRx是捕获/比较寄存器
用做捕获时:捕获的同时TAR的值会传给CCRx,用来测算周期是很好的方法,一般捕获用 ...

能解释下我的程序吗?为什么我用CCR0中断可以,但是换成CCR1中断就不行了?非常感谢!
dirtwillfly
3楼-- · 2019-08-04 01:13
 精彩回答 2  元偷偷看……

一周热门 更多>