⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 哈工大智能电动车软件的源代码
💻 C
字号:

#define		Speech_1 		0
#define		DAC1			1
#define		DAC2			2
#define		Ramp_UpDn_Off	0
#define		Ramp_UpDn_On	3
#define		Auto			1
#include	"s480.h"
#include    "hardware.h"
unsigned int ironnum;
unsigned int ironflag;
unsigned int timenum;
unsigned int i;
unsigned int uiIOA;
unsigned int *p;
unsigned int m,j,k;
int Light_Flag;
main()
 {
	ironnum=0;
	ironflag=0;
	timenum=0;
	
	SP_Init_IOA(0xff00,0xff00,0x00ff);//A口高8位接LED8码输出,低8位传感器输入
	SP_Init_IOB(0xffbf,0xffff,0x0000);//B口低8位同相输出
	
		F_MoterAtoC();
		//F_Delay10ms();
	while (1)
	{    
		
		p=0x7000;
        uiIOA=*p;
        uiIOA=uiIOA&0x0070;
		switch(uiIOA)
		 {
		    case 0x0070:
		    SP_Export(Port_IOB_Data,0x2e00);  //前进
		    break;
		    case 0x0010:
		    SP_Export(Port_IOB_Data,0x0e00);  //左拐 
		    F_Delay10ms();
		    break;
		    case 0x0030:
		    SP_Export(Port_IOB_Data,0x0e00);  //左拐 
		    F_Delay10ms();
		    break;
		    case 0x0040:
		    SP_Export(Port_IOB_Data,0x2600);  //右拐
		    F_Delay10ms();
		    break;
		    case 0x0060:
		    SP_Export(Port_IOB_Data,0x2600);  //拐 
		    F_Delay10ms();
		    break;
		    default:
		    break;
	     }  

	
		if(ironflag==1)
		{
		   ironflag=0;
		   SACM_S480_Initial(1);
           SACM_S480_Play(Speech_1, DAC1+DAC2, Ramp_UpDn_On);	//放音
            while(SACM_S480_Status()&0x01) 
	   		{
	         SACM_S480_ServiceLoop();
			}
		} 
		 i=ironnum;
		 F_Show(1,i);
		 if(i==4)
		 break;
	}
		//	Get_aim:	
	SP_Export(Port_IOB_Data,0x0005);
	//r1=0x05                       //直行
	F_Delay2s();//延时0。5m
	p=0x7000;
	
	
	m=*p;
	
		
	//m=*P_IOA_Data;
    m=m&&0x0002;
    while (m=1)  //检测前面障碍物
    
    {
		    
          //case 0x0007:        //1表示无障碍
           	SP_Export(Port_IOB_Data,0x0005) ;//此处须修改IOB8~IOB15为电机的控制信号     
          F_Delay10ms() ;
          p=0x7000;
          m=*p;
            m=m&&0x0002;
	}   
           
             
       SP_Export(Port_IOB_Data,0x0004) ;//左传 
	    F_Delay10ms();
    //F_TurnLeftCtr(); 
     SP_Export(Port_IOB_Data,0x0005); //直行 
	    F_Delay10ms()   ;
	    p=0x7000;
	    j=*p;
	    j=j&&0x0004;//j=0有章碍物
	    //j=~j;
		while (j=0)
		{
			SP_Export(Port_IOB_Data,0x0005); //直行 
	    F_Delay10ms()  ; 
	      
		p=0x7000;	
	    j=*p;
	    j=j&&0x0004;
	     }
		  
		  SP_Export(Port_IOB_Data,0x0001) ;//右传 
	     F_Delay10ms();
	     
	     SP_Export(Port_IOB_Data,0x0005); //直行 
	     F_Delay2s();   
		
           
check_light:
      p=0x7000;
	//k=~k;
	  k=*p;
	  k=k|0xfff7;    //IOA3为控制,地点平有效
	 k=k&&0x0008;
	 while (k=1)
	 //if(i=0)       //检测Light——Flag
	{
	
			SP_Export(Port_IOB_Data,0x0001) ;//右传 
	    F_Delay10ms() ;
	    p=0x7000;
	     k=*p;
	  k=k||0xfff7;    //IOA3为控制,地点平有效
	 k=k&&0x0008;
	  // Light_Flag=1
     }
	SP_Export(Port_IOB_Data,0x0005)	  ;   
	F_Delay2s()   ;
	SP_Export(Port_IOB_Data,0x0000);
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -