sysmain.c

来自「上载/下载日志 实现小车的自动寻迹小车,且速度较快并且很稳定 2. XUNJI」· C语言 代码 · 共 136 行

C
136
字号
//=============================================================
// 文件名称:   main.c
//==============================================================
#include "SPCE061.H"
unsigned int  meltIntFlag=0;
unsigned int  distanceFlag=0;
unsigned int  stopFlag=0;
unsigned int  stopSum=0;
unsigned int  stautus=0;

//=======================================================================
void Fangxiang_process1(void){	
unsigned int Fangxiang1;
Fangxiang1=Get_Fangxiang1();
if(Fangxiang1)
switch(Fangxiang1)
	{
	case 0x8000:
		Set_IOB13_Data1();	          //left
		Set_IOB14_Data0();
		//bit++;	
		Fangxiang1=Get_Fangxiang1();
		while(Fangxiang1)
		{Fangxiang1=Get_Fangxiang1();
		 Set_IOB13_Data1();	           //left
		 Set_IOB14_Data0();		
		 *P_Watchdog_Clear=0x01;
		}
		Set_IOB14_Data1();              //without Direction
	    break;
	case 0x4000:
		 Set_IOB13_Data0();	           //right
		 Set_IOB14_Data0();
		// bit--;
		 while(Fangxiang1)
		{ Fangxiang1=Get_Fangxiang1();
		 Set_IOB13_Data0();	           //right
		 Set_IOB14_Data0();		
		 *P_Watchdog_Clear=0x01;
		 }
	     Set_IOB14_Data1();
		break;	
		default:
		Fangxiang1=0x0000;
		break; }
		} 
//============================================================
void Fangxiang_process2(void){	
unsigned int Fangxiang2;   
  Fangxiang2=Get_Fangxiang2();
	if(Fangxiang2)
	switch(Fangxiang2)
	{
	case 0x0800:
		Set_IOB13_Data0();	      //left
		Set_IOB14_Data0();					
		Fangxiang2=Get_Fangxiang2();
		while(Fangxiang2)
		{Fangxiang2=Get_Fangxiang2();
		 Set_IOB13_Data0();	      //left
		 Set_IOB14_Data0();		
		*P_Watchdog_Clear=0x01;}
		Set_IOB14_Data1();
	    break;
	case 0x0400:
		Set_IOB13_Data1();	    //right
		Set_IOB14_Data0();	
		while(Fangxiang2)
	   {Fangxiang2=Get_Fangxiang2();
		Set_IOB13_Data1();	
		Set_IOB14_Data0();		
		*P_Watchdog_Clear=0x01;}
	    Set_IOB14_Data1();
		break;	
		default:
		Fangxiang2=0x0000;
		break; }
		} 
 
   
//================================================================
  void  run_stright_car(void)        
     {  
        int i;
        APWM_Initial(); 
        Set_IOB13_Data1();	  //all left
		Set_IOB14_Data0();		
		for(i=0;i<1000;i++)	  //delay	    
        Set_IOB14_Data1();    //straight 
        Fangxiang_process2();
        *P_Watchdog_Clear=0x01;
        }
//=================================================//
       
        
main()	
  {             
	F_System_Initial();        //I/Oset
    INT_irq();                  //open  ext1,ext2,       
	F_UART_Initial();        
	APWM_Initial();
	Set_IOB14_Data1();        //upstrait

//===============================status  linr area
	while(stautus==0)	
	{
      Fangxiang_process1(); 
              
	  *P_Watchdog_Clear=0x01;   
	    }           
//=====================================================
       while(meltIntFlag==4)
	 {  forbit_ext1();     
       F_UART_Write(0x00FF);
       meltIntFlag=0;      
       allow_irq5_2hz();
       APWM_0FF();                // stop move  flag       
       stautus=2;
       }
                                      
       while(stopSum==5)
      {forbit_irq5_2hz();
      stautus=3; }                //enter   flag
      *P_Watchdog_Clear=0x01;                           //           
     	
      if(stautus==3)                
     run_stright_car();
    *P_Watchdog_Clear=0x01;         //   barrier
}				






                                                                                                                                  

⌨️ 快捷键说明

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