打印

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

[复制链接]
1309|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; 如果程序中都像你这样写的话会干扰到其他的端口的。你再调试调试吧!

使用特权

评论回复
5
gexingyouxian| | 2012-8-24 22:11 | 只看该作者
当你后面加TACTL = MC0时,实际上已经把你的TIMERA时钟选择为外部时钟输入TACLK,此时你必须自己加CLK给TIMERA。

当换TACTL |= MC0,也就是不改变之前你设定的时钟,按TACTL = TASSEL0 + TACLR;说明你选择了ACLK作为定时器时钟源,请检查外部低速晶振是否连接或起振。

使用特权

评论回复
6
yangguangaisha| | 2012-8-24 22:28 | 只看该作者
纯软件不能仿真吗?我想应该可以的,我在网上查过,很多人也有此类问题。

使用特权

评论回复
7
G21372| | 2012-8-24 22:34 | 只看该作者
好像是simulator-->Forced Interrupts 配置的原因

使用特权

评论回复
8
u880| | 2012-8-24 22:42 | 只看该作者
好好检查一下吧,纯软件也试试

使用特权

评论回复
9
lishufengoo| | 2012-8-26 18:41 | 只看该作者
meikanchulai

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

115

主题

1489

帖子

1

粉丝