用lanuchpad进行步进输出,调试可以进中断,却不能步进,求高手!!!!!

2019-03-24 13:59发布

思路:
    初始化——变量i(每中断一次i加一)——选择输出——循环
代码:#include  <msp430g2553.h>
unsigned char  i=3;void main(void){  WDTCTL = WDTPW+WDTHOLD;// Stop WDT  P1DIR |= BIT7+BIT6+BIT5+BIT4 ;  P2DIR = 0x0f;
  P1OUT |= BIT3;  P1REN |= BIT3;  P1IES |= BIT3;  // P1.3 IFG cleared  P1IE |= BIT3;   // P1.3 interrupt enabled  P1IFG &= ~BIT3;
  _BIS_SR(LPM1_bits + GIE);
  while(1)  {i=i%6;  switch (i)  {  case 1:  P1OUT = 0x00;  P2OUT = 0x00;
     break ;  case 2:  P1OUT = 0x00;  P2OUT = 0x03;
     break ;
  case 3:  P1OUT = 0x00;  P2OUT = 0x08;
     break ;  case 4:  P1OUT = 0x10;  P2OUT = 0x0e;
      break ;  case 5:  P1OUT = 0x50;  P2OUT = 0x00;
      break;  case 6:P1OUT = 0xf0;         P2OUT = 0x0f;

      break ;  } }

}
  //P1 output

#pragma vector=PORT1_VECTOR__interrupt void Port_1(void)  { if ((P1IN&BIT3)==0) {_delay_cycles(5000); if ((P1IN&BIT3)==0)    i++; P1IFG &= ~BIT3; // P1.3 IFG cleared }
问题:
     调试时加断点显示可以进入中断,但是i却不进行加1,在板子上运行,每个输出口都加led灯,按键不会改变灯的亮灭

请教  这是什么问题?
此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章