msp430g2553中断的问题

2019-03-24 12:52发布

我想编程长生一个终端来控制pwm的占空比变化,p1.3按键作为中断,可是我按了键发现波形没变化,这是怎么回事,这个中断函数用来控制灯的暗灭变化时可以的,这么到了这个程序里就不行了???紧急求助。。。。。。。。。
程序如下。。。。求大神给力。。。
#include  <msp430g2553.h>
void key_init();
void main(void)
{
static int i;
//XTS(1);
//XT1OFF(0);
//XT1BYPASS(0);
//XCAP(0);
  _EINT();         //打开全局中断
  WDTCTL = WDTPW + WDTHOLD;
// Stop WDT禁止看门狗
  P1DIR |= BIT2;                          // P1.2 and P1.3 TA1/2 options 1为选引脚第二功能,0为引脚第一功能1
  P1SEL |= BIT2;
  CCR0 = 512-1;                             // PWM Period
  CCTL1 = OUTMOD_7;// CCR1 reset/set
i=168;
  CCR1 =i;              // CCR1 PWM duty cycle
TACTL = TASSEL_1 + MC_1;                  // ACLK时钟, 上升沿捕获
_BIS_SR(CPUOFF);                          // Enter LPM0

}
void key_init()
{
P1DIR&=~BIT3;     //P1.3为输入
   P1REN|=BIT3; //设置上拉
   P1OUT|=BIT3;
  P1IES|=BIT3; //高电平到低电平有效,即下降沿
  P1IFG&=~BIT3; //清除中断标志,带上这句最好
  P1IE|=BIT3;
}
#pragma vector=PORT1_VECTOR //中断
__interrupt void port1(void)
{
if(P1IFG&BIT3)
{
  static int i;
  if(i<=511)
    i += 168;
  else i = 0;      // 调整占空比
    P1IFG&=~BIT3; //这句清除中断标志
}
else
    P1IFG=0X00;
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Enjoy972430161
1楼-- · 2019-03-24 21:21
<
qinkaiabc
2楼-- · 2019-03-24 22:55
< :TI_MSP430_内容页_SA7 --> 程序好像有点问题
Enjoy972430161
3楼-- · 2019-03-24 23:28
 精彩回答 2  元偷偷看……
wangfuchong
4楼-- · 2019-03-25 04:11
没看,扫了一眼,发现一条好像有点问题,也许不一定是你故障的直接原因
就是声明静态变量 i
在中断程序中声明static,表示只在本中断程序中使用,而且一般要声明的时候赋给初始值。

一周热门 更多>

相关问题

    相关文章