用定时器控制LED灯但是无法进入定时器中断

2019-07-14 15:43发布

写了一段很简单的程序,想用定时器控制LED灯,一段时间后翻转LED引脚。但发现无法进入定时器中断
发现运行到BCSCTL2 |=SELM_2+SELS; 就无法继续执行,绿颜 {MOD}的提示行消失
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
上海秉恒
1楼-- · 2019-07-14 21:47
 精彩回答 2  元偷偷看……
广州洋钒
2楼-- · 2019-07-15 02:10
  1. #include <msp430f122.h>
  2. int count=0;

  3. int main( void )
  4. {
  5.    int j;   
  6.      WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗  
  7.      BCSCTL2 |=SELM_2+SELS;
  8.      CCTL0 = CCIE;                   //使能CCR0中断
  9.     CCR0 = 40000;                    //设定周期               
  10.      TACTL = TASSEL_1 + ID_3 + MC_1; //定时器A的时钟源选择ACLK,增计数模式
  11.     P2DIR = 0xff;                   //设置P2口方向为输出
  12.     P2OUT = 0xff;

  13.      __enable_interrupt();                        //使能全局中断
  14.     while(1)
  15.      {
  16.        j=count;
  17.      }
  18. }

  19. /*******************************************
  20. 函数名称:Timer_A
  21. 功    能:定时器A的中断服务函数
  22. 参    数:无
  23. 返回值  :无
  24. ********************************************/
  25. #pragma vector = TIMERA0_VECTOR
  26. __interrupt void Timer_A (void)
  27. {  
  28.    if(count==50)
  29.    {
  30.      count=0;
  31.      P2OUT ^= 0xff;                  //P2口输出取反  
  32.    }
  33.    else
  34.    {
  35.      count++;
  36.    }
  37. }
复制代码
zyh34997
3楼-- · 2019-07-15 05:07
在BCSCTL2 |=SELM_2+SELS操作之前,要先判断8M晶振是否已经起振。
gXDhn
4楼-- · 2019-07-15 06:53
ACLK使用的是外部晶振哦,你要看一下你的板子上面有没有外接晶振哦,不然时钟没有,肯定不会进入中断的
kingnet_520890
5楼-- · 2019-07-15 12:33
你可以尝试使用一下其他的时钟,试一下可不可以
YOYOOO
6楼-- · 2019-07-15 13:47
 精彩回答 2  元偷偷看……

一周热门 更多>