3855|14

13

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

我用msp430输出pwm波,但是好像进不去中断,求大神帮忙看下程序是哪里不对啊 [复制链接]

 
我用msp430输出pwm波,同时一个周期产生一个中断信号,求大神帮忙看下程序是哪里不对啊,能够产生波,但是p6口一直没有信号输出void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                                     //看门狗设置
  Clock_Init();                                 //系统时钟设置
   
  TACCTL2 = OUTMOD_7;
  TACTL |= TASSEL1 +ID1 + ID0+ MC0;  //选择SMCLK 增加模式
TACCR0 = 20000;    //PWM信号频率50HZ     
TACCR2 = 1000;   //高电平1ms
TACCTL2 |=CCIE;      //打开中断

P2SEL |= BIT4  ;     //选择 p2.4  作为PWM输出 第二功能
  P2DIR |= BIT4  ;

  while(1)
  {
       if(s==5)
       {
         while(1)
{     //5 s后,P6.1 P6.2输出高电平
             P6OUT=0x03;
              s=0;
         }
       }
}
}

#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
  h++;
  if(h==50)
  {
     s++;
     h=0;
   }
}

最新回复

我遇到过这个问题,你要时能全局中断,而且每次进入中断之后要清除中断标志(灰常重要),  详情 回复 发表于 2016-10-8 16:37
 
点赞 关注

回复
举报

13

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
中断中的h和s是设置的全局变量
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这是全部代码吗?P6有没有设置为输出?
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

4
 
落木千山 发表于 2016-7-22 17:39
这是全部代码吗?P6有没有设置为输出?

除了#include和定义的h,s。这就是所有程序了。P6口我一直是这么用的啊,我用的开发板,P6口是led灯
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

5
 
”P2DIR |= BIT4  ;“就好比这句,你设置P2.4为输出,当你要对输出寄存器操作(P6OUT),也应先设置方向寄存器(P6DIR);另外这个程序好像不能进入中断吧,没有使能全局中断,我也是刚学,不知道说的对不对

点评

好像不需要吧,那个寄存器默认就是0x00,就是输出状态啊。我以前的控制P6口输出的程序也是这样用的啊  详情 回复 发表于 2016-7-22 19:15
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

6
 
落木千山 发表于 2016-7-22 18:51
”P2DIR |= BIT4  ;“就好比这句,你设置P2.4为输出,当你要对输出寄存器操作(P6OUT),也应先设置方向寄 ...

好像不需要吧,那个寄存器默认就是0x00,就是输出状态啊。我以前的控制P6口输出的程序也是这样用的啊
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

7
 
史儒鑫 发表于 2016-7-22 19:15
好像不需要吧,那个寄存器默认就是0x00,就是输出状态啊。我以前的控制P6口输出的程序也是这样用的啊

我用F149学的,可能不一样,我那个0是输入,1是输出

点评

哦,对,我记错了。是0是输入。因为我的板子是输入低电平时led等亮  详情 回复 发表于 2016-7-22 20:06
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

8
 
落木千山 发表于 2016-7-22 19:23
我用F149学的,可能不一样,我那个0是输入,1是输出

哦,对,我记错了。是0是输入。因为我的板子是输入低电平时led等亮
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

9
 
史儒鑫 发表于 2016-7-22 20:06
哦,对,我记错了。是0是输入。因为我的板子是输入低电平时led等亮

程序调好了吗?
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

10
 
我没有用这个程序了。我直接用了两个定时计数器,一个定时,一个输出PWM波。但我实在没找到这个程序的问题在哪里
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

11
 
前面大大有說了,應該是少了這句        _BIS_SR(GIE);
沒打開全局中斷,加在while(1)上應該就可以了

点评

对的,谢谢大神了。这段时间没登录这个论坛,没看到,不好意思啦哈  详情 回复 发表于 2016-9-1 09:35
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(初级)

12
 
_EINT();

点评

对的,谢谢大神了。这段时间没登录这个论坛,没看到,不好意思啦哈  详情 回复 发表于 2016-9-1 09:35
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

13
 
squart 发表于 2016-8-5 09:43
前面大大有說了,應該是少了這句        _BIS_SR(GIE);
沒打開全局中斷,加在while(1)上應該就可以了

对的,谢谢大神了。这段时间没登录这个论坛,没看到,不好意思啦哈
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

14
 

对的,谢谢大神了。这段时间没登录这个论坛,没看到,不好意思啦哈
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
我遇到过这个问题,你要时能全局中断,而且每次进入中断之后要清除中断标志(灰常重要),
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表