标题: 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.51hei.com/bbs/) Powered by Discuz! X3.1