[MCU] 进不了中断

[复制链接]
389|10
 楼主| huangchui 发表于 2019-7-13 14:46 | 显示全部楼层 |阅读模式

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;

}
 楼主| huangchui 发表于 2019-7-13 14:50 | 显示全部楼层
软件应该没问题,我用的是3.41 4K限制版。软仿硬仿都试过了,没用。
zhaoxqi 发表于 2019-7-13 14:56 | 显示全部楼层

TACTL = MC0;

这里应该是位操作才可以TACTL |= MC0; 否则试种源就选择成TACLK了。
午夜粪车 发表于 2019-7-13 14:59 | 显示全部楼层
你用的是430的那款单片机啊?我用的是msp430F149,感觉你的程序没有什么问题的啊!P1DIR = 0x01;  但是我觉得像这种语句应该写成P1DIR| = 0x01;
wuhany 发表于 2019-7-13 15:02 | 显示全部楼层

如果程序中都像你这样写的话会干扰到其他的端口的。你再调试调试吧!
lizye 发表于 2019-7-13 15:05 | 显示全部楼层
当你后面加TACTL = MC0时,实际上已经把你的TIMERA时钟选择为外部时钟输入TACLK,此时你必须自己加CLK给TIMERA。
jiahy 发表于 2019-7-13 15:11 | 显示全部楼层

当换TACTL |= MC0,也就是不改变之前你设定的时钟,按TACTL = TASSEL0 + TACLR;说明你选择了ACLK作为定时器时钟源,请检查外部低速晶振是否连接或起振。
shimx 发表于 2019-7-13 15:15 | 显示全部楼层
纯软件不能仿真吗?我想应该可以的,我在网上查过,很多人也有此类问题。
lizye 发表于 2019-7-13 15:18 | 显示全部楼层
好像是simulator-->Forced Interrupts 配置的原因
jiaxw 发表于 2019-7-13 15:21 | 显示全部楼层

楼上提示的是啊,,在仿真软件里面也是需要注意的。
 楼主| huangchui 发表于 2019-7-13 15:24 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

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