zoukankan      html  css  js  c++  java
  • 电机控制

    void Motor2_H_init(void)
    {
    	U8 step_run = 0;
    	U8 tmp1,tmp2;
    	U32 runtime1=0,timerun2=0;
    	U8 flag=0;
        for(;;)
        {
    		tmp1=GPIO_ReadInputDataBit(GPIOB,GPIO_PIN_3);
    		tmp2=GPIO_ReadInputDataBit(GPIOC,GPIO_PIN_11);
            switch(step_run)
            {
               case 0:
    		   	{
                   if((tmp1==1)&&(tmp2==1))
                   	{
    				   step_run=2;
    			    }else
    				{
                       step_run=1; 
    				   timerun2=0;
    				}
    		    }
    		   	break;
    			case 1:
    			{
    				timerun2++;
    				if(timerun2<2500)
    				{
    					M24_L2 = HIGH;//逆时针转
    					HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);
    				}else if(timerun2<5000)//到这个时候还没检查到两光眼信号说明要卡住了
    				{
    					M24_R2 = HIGH;//顺时针转
    					HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_1);
    				}else if(timerun2>5001)
    				{
                         //超时光眼坏了
                         step_run=5;
    				}
    				if((tmp1==1)&&(tmp2==1))
    				{
    					step_run=0;
    				}		
    			}
    			break;
    			case 2:
    				{
    					M24_R2 = HIGH;//顺时针转
    					HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_1);
    					if(tmp1==0) //在不正常位置
    					{
    						step_run=3;
    					}
    					if(tmp2==0)//在正常位置
    					{
    						step_run=4;
    					}
    
    			    }
    			break;
    			case 3:
    				{
    					M24_R2 = HIGH;//顺时针转
    					HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_1);
    					if((tmp1==1)&&(tmp2==1))
    					{
    						M24_R2 = HIGH;
    						M24_L2 = HIGH;
    						step_run=5;
    					}
    
    			    }
    			break;
    			case 4:
    				{
    					M24_L2 = HIGH;//逆时针转
    					HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);
    					if((tmp1==1)&&(tmp2==1))
    						{
    							M24_R2 = HIGH;
    							M24_L2 = HIGH;
    							step_run=5;
    						}
    			    }
    			break;
    			case 5:
    				{
    					flag=1;
    			    }
    				break;
    		}
    
    	   if(++runtime1 >= 2500)//超时处理
    	   {
    	      flag=1;
    	   }
    	   os_dly_wait(3);
           if(flag>1) break;
    	}
        	
    }
    

      

  • 相关阅读:
    SRM 588 D2 L3:GameInDarknessDiv2,DFS
    [置顶] ProDinner体验
    [置顶] 强制访问控制内核模块Smack
    Java小项目--坦克大战(version1.0)
    utf-8-validation
    is-subsequence
    perfect-rectangle
    find-the-difference
    longest-absolute-file-path
    first-unique-character-in-a-string
  • 原文地址:https://www.cnblogs.com/huangyangquan/p/8979940.html
Copyright © 2011-2022 走看看