標題: 51單片機做的小車,紅外遙控和超聲波測距好像有沖突 [打印本頁]

作者: muziYANG    時間: 2022-11-17 01:13
標題: 51單片機做的小車,紅外遙控和超聲波測距好像有沖突
主函數如下,里面有超聲波模塊和紅外遙控模塊,注釋一個測試另一個都可以,但一起運行就只能進行超聲波測距,紅外失效


void main()

{
                LCD_Init();
        
        init();        //????????0?????0
        EN1 = EN2 = 0;//?????????
        speed = 8;//???????8,8/40=0.2,?????20%???,speed???????,????????
        
        while(1)
        {
               
        Timer0Init();//??????,????????????
                TrigInit();//???????,??300ms
        Bc_Dis();//?????
                LCD_ShowNum(1,1,(unsigned int)dis,3);
               
               
                if(IRok)    //??????????                    
                {   
                        IRcordpro();//???????4??????
                        IRok = 0;        //????????
                        if(IRpro_ok) //????????  
                        {
                        switch(IRcord[2])
                                   {
                                      case 0x0C:   forward();                 break;  //??        
                                     case 0x18:   backward();                break;  //??
                                //         case 0x0c:  left();                                break;//??
                                         case 0x5A:  right();                                break;//??
                                                 case 0x16:  stop();                                break;//??
                                                 case 0x5E:  speed_up();                                break;//??
                                                 case 0x08:  speed_down();                                break;//??
                                           default:                break;
                                   }
                                IRpro_ok = 0;
                        }
                }
        
        
        if(dis <=010){
                                BUZZER = ON;
                                Delay2(30);
                                BUZZER = OFF;
                                Delay2(30);
        
                        }        
                        else if((010< dis) && (dis <= 020)){
                                BUZZER = ON;
                                Delay2(100);
                                BUZZER = OFF;
                                Delay2(100);
                        }
                        else if((020 < dis) && (dis <= 050)){
                                BUZZER = ON;
                                Delay2(150);
                                BUZZER = OFF;
                                Delay2(150);
        
               
                }
               
                }               
        
        }



作者: lkc8210    時間: 2022-11-17 09:28
代碼給全一點
縮進弄整齊一點
代碼可以放到代碼格式里




作者: hzxyy    時間: 2022-11-17 10:25
估計是,超聲波、紅外共用了同一個定時器
作者: tzs233    時間: 2022-11-17 15:45
紅外對時序要求挺高的吧。做好不同任務時間評估。格式不對當然解碼不正確
作者: yzwzfyz    時間: 2022-11-17 17:01
如果不能DELAY,問題就解決了。
作者: 清炒苦瓜絲    時間: 2022-11-17 21:15
檢查一下紅外試試呢




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1