谁能帮忙找下错误,按键控制呼吸灯亮灭就是不行啊,程序贴底下了

2019-07-15 15:42发布

#include <msp430.h>#define MCLK_C      (1)#define Delay_us(n)  __delay_cycles(n*MCLK_C)#define Delay_ms(n)  __delay_cycles(n*(1000L)*MCLK_C)int b=1;int main(void){  WDTCTL = WDTPW+WDTHOLD;  P1DIR|=BIT6;  P1SEL|=BIT6;  P1REN|=BIT3;  P1OUT|=BIT3;  P1IE|=BIT3;  P1IES=BIT3;  P1IFG&=~BIT3;  CCR0=1000;  CCTL1=OUTMOD_7;  CCR1=0;  TACTL=TASSEL_2+MC_1+TACLR;  _EINT();  while(1)      {            if(b==1)            {              CCR1+=5;              Delay_ms(10);              if(CCR1>=1000&b==1)              {                  while(b==1)                 {                  CCR1-=5;                  Delay_ms(10);                  if(CCR1<=0)                  {                          CCR1=0;                          break;                  }                     }              }            }            if(b==0)            {                    CCR1=0;                    while(b==0);            }      }  }
#pragma vector=PORT1_VECTOR__interrupt void Port_1(void){  if(b==1)  {          b=0;          P1IFG&=~BIT3;  }  if(b==0)  {          b=1;          P1IFG&=~BIT3;  }}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
灬今何在灬
1楼-- · 2019-07-16 12:33
if(b==1)
            {
              CCR1+=5;
              Delay_ms(10);
              if(CCR1>=1000&b==1)
              {
                  while(b==1)
                 {
                  CCR1-=5;
                  Delay_ms(10);
                  if(CCR1<=0)
                  {
                          CCR1=0;
                          break;
                  }
                     }
              }
            }
            if(b==0)
            {
                    CCR1=0;
                    while(b==0);
            }
这段程序太冗杂了吧!太多的重复判定,太多的无用语句。编辑器都不一定能编辑正确
灬今何在灬
2楼-- · 2019-07-16 14:32
if(wifi_led_cnt<5)
{
        Fcard_WIFI=0;
}
else if(wifi_led_cnt>wifi_led_Speed)
{
        wifi_led_cnt=0;
}
else
{
        Fcard_WIFI=1;
}参照下这段,把wifi_led_cnt丢进定时器就行了

一周热门 更多>