久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機C語言程序搞不懂為什么經常選擇NUM = 0;難道真的判斷失敗嗎? [打印本頁]

作者: goldbirderman    時間: 2022-4-22 15:01
標題: 單片機C語言程序搞不懂為什么經常選擇NUM = 0;難道真的判斷失敗嗎?
  void AD_TEST(void){

  Fireset = 0;

     if(num == 200)
          {
                        num = 0;
                  
                        if(fdaiti<4)
                        
                  {
                          fdaiti++;
                  }
         
           
         }
           

        
         if(KEY_INFO==0 && locks2==2)
                   {
                            locks2=1;        
                            change2++;
                              //printf(" locks2 = %d\r\n",locks2);
                         //  printf(" change2 = %d\r\n",change2);
                         }
                        if(change2>3){change2=1;}
                          
                  

                           if(KEY_INFO==1)
                        {        
                                locks2=2;        
                        }        
                                                   
                  if(change2 == 1)
                                                                {               
                                                                        ZERO_MODE(fdaiti);
                                                                }
                                                                    
                      if(change2==2)
                        {
                                 
                                                         ZERO_MODE(fdaiti);
                                                  
                        }
                                                                                                                                       
                                                
                                       
                                          if(change2 == 3)
                                          {
                                                        num2++;
                                                            if(num2 == 100)
                             {
                                        num2 = 0;
               
                                      GET_AD = Get_AD(CHANNEL_0);
               
                                      APEI = abs(GET_AD*15/1023+6-28);
                                                              
                                                    }
                                                                                            
                                                              LCD_OUT(APEI);
                                                                                           printf("APEI =  %d\r\n",APEI);         
                                          
                                          
                         }
                                       
                                                               
                                
                           
                   if(fdaiti == 0)
                      {
                         if(IN_S == 0)
                                                 {
                                                         RELAY_SWITCH();
                                                           fdaiti = 1;
                                                           //printf("IN_S =  %d\r\n",IN_S);
                                                           
                                                           FAULT = 0;
                            Lgnition2 = 0;                 
                             V1 = 0;
                             Lgnition = 0;
                             WORK = 0;
                                                 }
                                                 else
                                                 {
                                                         
                                                         num = 0;
                                                         //printf("num =  %d\r\n",num);
                                                 }

                       }
             else if(fdaiti == 1)
               {
                                         
                                            if(APEI > 5)
                                                 {
                             fdaiti = 2;
                                                 }
                                                 else
                                                {
                                                         alarm = 1;
                                                 }
               }
                  else if(fdaiti == 2)
               {
                          if(APEI >15)
                                                        {
                                                                //RELAY_SWITCH();
                                             
                                                                V1 = 1;
                                                               
                                                                Lgnition2 = 1;
                                              Lgnition = 1;
                                             
                                                        }
                                                        else
                                                        {
                                                                alarm = 1;
                                                        }
               }
                 else if(fdaiti == 3)
               {
               
                        
               }
         
                  else if(fdaiti == 4)
               {  
                 
                        
                           
                           
               }
         

}
請問各位大神幫我解決,if經常選擇否則那項,而不是選擇第一行



作者: 天ノ憶    時間: 2022-4-22 15:32
不明白程序里寫那么多fdaiti是什么意思?建議你先提升素質,再提升技術
作者: goldbirderman    時間: 2022-4-22 15:41
天ノ憶 發表于 2022-4-22 15:32
不明白程序里寫那么多

fdaiti變量指的是定時器跑數碼管的數值
作者: goldbirderman    時間: 2022-4-22 15:41
天ノ憶 發表于 2022-4-22 15:32
不明白程序里寫那么多

if(num == 200)
          {
                        num = 0;
                  
                        if(fdait<4)
                        
                  {
                          fdaiti++;
                  }
         
           
         
作者: 名字不是重點    時間: 2022-4-22 15:49

建議變量名要有實際意義,這樣后來者能明白代碼的本意,不然就讓人笑話了。
你這個變量用別的改一下吧,哪怕是拼音SMG_RUN_TIME都行。
作者: Y_G_G    時間: 2022-4-22 16:36
goldbirderman 發表于 2022-4-22 15:41
if(num == 200)
          {
                        num = 0;

是不是還有變量名叫s某的?
或者是叫d某
數碼管的值哪怕是叫shu_ma_guan
它也行呀,沒有規定要英語的吧
用啥不好,非得f某某
回到正題:
==是查找,如果這個變量在其它地方被改變,一旦錯過了就沒了,如果不是循環,那就永遠找不著了
>=是比較,如果這個變量在其它地方被改變,最多就差一兩個數字量,程序邏輯沒有變化的
作者: goldbirderman    時間: 2022-4-22 16:44
Y_G_G 發表于 2022-4-22 16:36
是不是還有變量名叫

謝謝大家 隨便使用,只是拿來做測試,到正式用不是這樣名稱
作者: hhh402    時間: 2022-4-24 20:29
使用switch()語句,方便理解。這么多else if,看得眼花




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久热9| 国产aⅴ爽av久久久久久久 | 国产区在线观看 | 成人毛片在线视频 | 一区二区三区免费网站 | 另类一区 | jvid精品资源在线观看 | 亚洲美乳中文字幕 | 国产黄色网址在线观看 | 天天摸天天看 | 国产午夜亚洲精品不卡 | 国产日韩欧美在线观看 | 99久久精品免费看国产小宝寻花 | 黄网站免费在线看 | 91视频在线观看免费 | 成人在线视频观看 | 欧美久久久久久久久 | 欧美日韩国产精品一区 | 久久电影一区 | 亚洲精品国产综合区久久久久久久 | 天天干天天爽 | 欧美a级网站 | 日日骚网 | 国产精品久久久久久久午夜 | 51ⅴ精品国产91久久久久久 | 久久精品国产一区二区电影 | 日韩精品在线一区 | 九九久久这里只有精品 | 久久中文字幕一区 | www.一区二区 | 国产日韩视频 | 欧美一区二区三区久久精品 | 精品www| 亚洲精品短视频 | 欧美视频精品 | 黄网免费看| 91在线色视频 | 亚洲成人精品一区 | 一区二区三区在线电影 | 伦理二区| 日韩av在线一区二区三区 |