智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1702|回复: 1
打印 上一主题 下一主题

求大神解决问题

[复制链接]

2

主题

15

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1147
威望
600
贡献
349
兑换币
328
注册时间
2012-8-8
在线时间
99 小时
毕业学校
河海大学
跳转到指定楼层
1#
发表于 2013-2-27 12:44:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
# include <msp430x14x.h>

void main ()
{
  WDTCTL = WDTPW + WDTHOLD ;//stop watchdogtimer
  P6DIR |= BIT2 ; P6OUT |= BIT2 ; //关闭电平中断
  _EINT () ; //开全局中断
  TACCTL0 = CCIE ; //定时器A中断使能
  TACCR0 = 2074 ; //定时间隔为0.5秒
  TACTL = TASSEL_1 + ID_3 + MC_1 ; //定时器A选择ACLK为时钟源,增计数模式,8分频
  P2DIR |= BIT3 ;//第四个灯闪烁
  P2OUT |= BIT3 ;
}
# pragma vector = TIMERA0_VECTOR
__interrupt void timer_a (void)
{
  P2OUT ^= BIT3 ;
// TACCTL = TACCTL1 & 0XFFFE ;//清除中断标志位
}

定时器A0不需要软件清除中断标志位吗?
为什么对程序做如下改变:
TACCTL0 = CCIE ;换成 TACCTL = CCIE;
# pragma vector = TIMERA0_VECTOR换成# pragma vector = TIMERA1_VECTOR
在中断中必要加上:
TACCTL = TACCTL1 & 0XFFFE ;//清除中断标志位   这句话才能成功进入中断啊!!!!

3

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
威望
178
贡献
81
兑换币
44
注册时间
2012-2-3
在线时间
15 小时
2#
发表于 2013-8-6 20:23:44 | 只看该作者
main最后应该让单片机进入低功耗模式等待啊,否则就一直循main函数,还有为啥要这样写呢// TACCTL = TACCTL1 & 0XFFFE ;//清除中断标志位
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 03:52 , Processed in 0.103920 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表