发现无法进入定时器中断

[复制链接]
 楼主| wangzsa 发表于 2022-12-4 14:47 | 显示全部楼层 |阅读模式
想用定时器控制LED灯,一段时间后翻转LED引脚。但发现无法进入定时器中断。
dingy 发表于 2022-12-4 14:52 | 显示全部楼层
用仿真器单步调试试试看吧。
xxrs 发表于 2022-12-4 14:56 | 显示全部楼层
我觉得应该查找下使能下定时器的吧。
zhuhuis 发表于 2022-12-4 14:59 | 显示全部楼层
看看,系统时钟配置好没有呀?
 楼主| wangzsa 发表于 2022-12-4 15:02 | 显示全部楼层

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

    __enable_interrupt();                        //使能全局中断
    while(1)
    {
      j=count;
    }
}

/*******************************************
函数名称:Timer_A
功    能:定时器A的中断服务函数
参    数:无
返回值  :无
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{  
  if(count==50)
  {
    count=0;
    P2OUT ^= 0xff;                  //P2口输出取反  
  }
  else
  {
    count++;
  }
}
wyjie 发表于 2022-12-4 15:04 | 显示全部楼层
在BCSCTL2 |=SELM_2+SELS操作之前,要先判断8M晶振是否已经起振。
xxrs 发表于 2022-12-4 15:06 | 显示全部楼层
ACLK使用的是外部晶振哦,你要看一下你的板子上面有没有外接晶振哦,不然时钟没有,肯定不会进入中断的
pengf 发表于 2022-12-4 15:08 | 显示全部楼层
外部晶振的需要多条件选择的,温漂也要特别注意
heweibig 发表于 2022-12-4 15:10 | 显示全部楼层
这个芯片没法用内部晶振的吗?
Henryko 发表于 2022-12-26 10:51 | 显示全部楼层
系统时钟有没有配置好啊
Stahan 发表于 2022-12-26 10:55 | 显示全部楼层
单步调试试试看
tpgf 发表于 2023-1-4 13:09 | 显示全部楼层
看一下软件代码是否开启总中断以及io口中断
heimaojingzhang 发表于 2023-1-4 13:17 | 显示全部楼层
程序里边还有其他种类的中断吗 能进入其他中断吗
keaibukelian 发表于 2023-1-4 13:27 | 显示全部楼层
wyjie 发表于 2022-12-4 15:04
在BCSCTL2 |=SELM_2+SELS操作之前,要先判断8M晶振是否已经起振。

请问如何来判定外部晶振已经完全起针了呢
paotangsan 发表于 2023-1-4 13:38 | 显示全部楼层
时钟初始化之后稍微延时一个小时间段
renzheshengui 发表于 2023-1-4 13:50 | 显示全部楼层
这个现象说明定时器是在工作的 可能是中断那边有问题
wakayi 发表于 2023-1-4 14:24 | 显示全部楼层
不仅仅 要使能总中断 还需要使能定时器的中断
MessageRing 发表于 2023-1-19 20:53 | 显示全部楼层
查找下使能下定时器试试
Stahan 发表于 2023-2-8 21:54 | 显示全部楼层
单步调试试试看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

9040

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部