2641|5

3

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430F122进中断 [复制链接]

在MSP430F122上写了一段很简单的程序,想用定时器控制LED灯,一段时间后翻转LED引脚。但发现无法进入定时器中断,用仿真器单步调试,发现运行到BCSCTL2 |=SELM_2+SELS; 就无法继续执行,绿颜色的提示行消失,下面debug log也没有报错。XIN--XOUT 接的是8MHZ的。求助这是为什么,我哪里设置有问题?谢谢!

#include
int count=0;

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++;
  }
}

最新回复

非常不错 确实这样的  详情 回复 发表于 2013-11-26 22:41
 
点赞 关注

回复
举报

6042

帖子

202

TA的资源

版主

沙发
 
SELM_2是什么?如果用外部晶振的话,首先要使能外部晶振的,默认外部晶振是不启动的。
 
 

回复

447

帖子

0

TA的资源

纯净的硅(中级)

板凳
 
一般在系统初始化关闭看门狗后要配置系统时钟,配置步骤为:
1、打开晶振;
2、等待晶振起振。清除OFIFG,延时,判断OFIFG是否为0,为0则晶振正常起振,退出判断;
3、选择MCLK/SMCLK时钟源;
  uchar iq0;
  BCSCTL1&=~XT2OFF; //打开XT2振荡器
  do
  {
      IFG1 &= ~OFIFG; // 清除振荡器失效标志
      for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振
  }
  while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
  BCSCTL2 =SELM_2+SELS; //选择MCLK、SMCLK为XT2

点评

while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振 我用单步调试时,如果一直这一句执行不下去,是不是可能是晶振无法启动?  详情 回复 发表于 2013-11-27 09:42
谢谢,我再试一试!  详情 回复 发表于 2013-11-27 09:41
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 
非常不错 确实这样的
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 板凳zzbaizhi 的帖子

谢谢,我再试一试!
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 板凳zzbaizhi 的帖子

while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
我用单步调试时,如果一直这一句执行不下去,是不是可能是晶振无法启动?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表