帮我看看为什么进不了中断

[复制链接]
1866|8
 楼主| jinpaidianzi 发表于 2012-8-24 20:12 | 显示全部楼层 |阅读模式
void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;         


  TACTL = TASSEL0 + TACLR;

                                      

  CCTL0 = CCIE;                     


  CCR0 = 16384;                  

  P1DIR = 0x01;                     


  TACTL = MC0;                     


_EINT();  

P1OUT |=0x01;

  while(1)

  ;

}



#pragma vector = TIMERA0_VECTOR

__interrupt void Timer_A(void)

{

P1OUT ^=0x01;

}
 楼主| jinpaidianzi 发表于 2012-8-24 20:12 | 显示全部楼层
软件应该没问题,我用的是3.41 4K限制版。软仿硬仿都试过了,没用。
acer4736 发表于 2012-8-24 20:25 | 显示全部楼层
TACTL = MC0;

这里应该是位操作才可以TACTL |= MC0; 否则试种源就选择成TACLK了。
wjzx111056 发表于 2012-8-24 20:42 | 显示全部楼层
你用的是430的那款单片机啊?我用的是msp430F149,感觉你的程序没有什么问题的啊!P1DIR = 0x01;  但是我觉得像这种语句应该写成P1DIR| = 0x01; 如果程序中都像你这样写的话会干扰到其他的端口的。你再调试调试吧!
gexingyouxian 发表于 2012-8-24 22:11 | 显示全部楼层
当你后面加TACTL = MC0时,实际上已经把你的TIMERA时钟选择为外部时钟输入TACLK,此时你必须自己加CLK给TIMERA。

当换TACTL |= MC0,也就是不改变之前你设定的时钟,按TACTL = TASSEL0 + TACLR;说明你选择了ACLK作为定时器时钟源,请检查外部低速晶振是否连接或起振。
yangguangaisha 发表于 2012-8-24 22:28 | 显示全部楼层
纯软件不能仿真吗?我想应该可以的,我在网上查过,很多人也有此类问题。
G21372 发表于 2012-8-24 22:34 | 显示全部楼层
好像是simulator-->Forced Interrupts 配置的原因
u880 发表于 2012-8-24 22:42 | 显示全部楼层
好好检查一下吧,纯软件也试试
lishufengoo 发表于 2012-8-26 18:41 | 显示全部楼层
meikanchulai
您需要登录后才可以回帖 登录 | 注册

本版积分规则

115

主题

1489

帖子

1

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