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

📄 main.c

📁 基于LPC2134的在ucos2操作系统下的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
	                     case   3:        // 切换选项设置          
	               
	                          arr[0]=3;
	                          dangqian++;
	                          if(dangqian==3)dangqian=0; 
	                          OSQPost(ReMsgQeue,(void*)arr);
	                     break;
	                     case   4:        // 切换电机的序号
	                          arr[0]=4;
	                          xuhao++;
	                          if(xuhao==3)xuhao=0;
	                          OSQPost(ReMsgQeue,(void*)arr);
	                     break;
	                     default:
                         break;
                     }
                   break; 
                  default:
                   break;
               }             
                             
          break;
       default:
            break;
        
   }
   
   if(key==5)
     {
       
       cond[0]  = sudu1num[0]*1000+sudu1num[1]*100+sudu1num[2]*10+sudu1num[3];
       cond[1]  = sudu2num[0]*1000+sudu2num[1]*100+sudu2num[2]*10+sudu2num[3];
       cond[2]  = sudu3num[0]*1000+sudu3num[1]*100+sudu3num[2]*10+sudu3num[3]; 
       cond[3]  = weiyi1num[0]*1000+weiyi1num[1]*100+weiyi1num[2]*10+weiyi1num[3];
       cond[4]  = weiyi2num[0]*1000+weiyi2num[1]*100+weiyi2num[2]*10+weiyi2num[3];
       cond[5]  = weiyi3num[0]*1000+weiyi3num[1]*100+weiyi3num[2]*10+weiyi3num[3];
       cond[6]  = x1;
       cond[7]  = x2;
       cond[8]  = x3;
       OSTaskCreate (TaskPJ1,(void *)cond, &TaskPJ1Stk[TaskStkLengh - 1], 3);
       
     }
   OSTimeDlyHMSM(0,0,0,20); 
   
  }
 
}
          

/*********************************************************************************************************
**                                           TaskKEY1
                                     查询按键,向TaskPWM发送改变后的消息
********************************************************************************************************/	
void TaskDisp(void *pdata)
{  
     uint8   i,err,sudu1weizhi=0,sudu2weizhi=0,sudu3weizhi=0,weiyi1weizhi=0,weiyi2weizhi=0,weiyi3weizhi=0;
     uint8   dangqian=0,xuhao=0;
     uint8   zhuanxiang1=0,zhuanxiang2=0,zhuanxiang3=0; 
     uint8   *pt;  
	 pdata = pdata;
	 
	
	 
     sudu1num[0]=0;
	 sudu1num[1]=0;
	 sudu1num[2]=0;
	 sudu1num[3]=5;
	 
	 sudu2num[0]=0;
	 sudu2num[1]=0;
	 sudu2num[2]=6;
	 sudu2num[3]=0;
	 
	 sudu3num[0]=0;
	 sudu3num[1]=1;
	 sudu3num[2]=0;
	 sudu3num[3]=0;
	 
	 weiyi1num[0]=0;
	 weiyi1num[1]=3;
	 weiyi1num[2]=6;
	 weiyi1num[3]=0;
	 
	 weiyi2num[0]=0;
	 weiyi2num[1]=3;
	 weiyi2num[2]=6;
	 weiyi2num[3]=0;
	 
	 weiyi3num[0]=0;
	 weiyi3num[1]=3;
	 weiyi3num[2]=6;
	 weiyi3num[3]=0;
	 
	 GUI_LoadPic(88,16,zhengzhuan,24,14);
	 GUI_LoadPic(88,30,zhengzhuan,24,14);
	 GUI_LoadPic(88,44,zhengzhuan,24,14);
	 
	  for(i=0;i<4;i++)              // 1号电机的速度显示             
         { 
            if(i==0)
              GUI_LoadPic1(8+6*i,21,*(num+sudu1num[i]),5,8);
            else
              GUI_LoadPic(8+6*i,21,*(num+sudu1num[i]),5,8);
         }
           
       for(i=0;i<4;i++)              // 1号电机的位移显示
     
           GUI_LoadPic(48+6*i,21,*(num+weiyi1num[i]),5,8);
       
       for(i=0;i<4;i++)              // 2号电机的速度显示            
      
              GUI_LoadPic(8+6*i,35,*(num+sudu2num[i]),5,8);
           
       for(i=0;i<4;i++)              // 2号电机的位移显示
         {   
              GUI_LoadPic(48+6*i,35,*(num+weiyi2num[i]),5,8);
         }   
         
       for(i=0;i<4;i++)              // 3号电机的速度显示            
         { 
              GUI_LoadPic(8+6*i,49,*(num+sudu3num[i]),5,8);
         }
           
       for(i=0;i<4;i++)              // 3号电机的位移显示
         {   
              GUI_LoadPic(48+6*i,49,*(num+weiyi3num[i]),5,8);
         }   
         
         
         
       for(i=0;i<3;i++)              // 电机选项的选定与不选定的显示
         {
             if(i==0)
               GUI_LoadPic1(8+40*i,0,*(hanzi+i),24,14); 
              else
               GUI_LoadPic(8+40*i,0,*(hanzi+i),24,14); 
         }
         
       for(i=0;i<3;i++)              // 电机序号的选定与不选定的状态的显示
         {
             if(i==0)
               GUI_LoadPic1(0,21+14*i,*(num+i+1),5,8); 
              else
               GUI_LoadPic(0,21+14*i,*(num+i+1),5,8); 
         }
	
	while (1)
	{  
	   pt=(uint8*)OSQPend(ReMsgQeue,0,&err);              //等待一条短消息  
	   switch(pt[0])
	   {
	     case  1:           //  1号电机的设置
	           sudu1num[sudu1weizhi]=pt[1];
	           break;
	     case  2:           
	           sudu1weizhi++;
	           if(sudu1weizhi==4)sudu1weizhi=0;
	           break;
	     case  3:
	           dangqian++;
	           if(dangqian==3)dangqian=0;
	           break;
	     case  4:
	           xuhao++;
	           if(xuhao==3)xuhao=0;
	           break;
	     case  5:
	           weiyi1num[weiyi1weizhi]=pt[1];
	           break;
	     case  6:
	           weiyi1weizhi++;
	           if(weiyi1weizhi==4)weiyi1weizhi=0; 
	           break;
	     case  7:
	           zhuanxiang1=0;
	           break;
	     case  8:
	           zhuanxiang1=1;
	           break;
	           
	           
	           
	           
	     case  9:           //  2号电机的设置
	           sudu2num[sudu2weizhi]=pt[1];
	           break;
	     case  10:           
	           sudu2weizhi++;
	           if(sudu2weizhi==4)sudu2weizhi=0;
	           break;
	     case  11:
	           weiyi2num[weiyi2weizhi]=pt[1];
	           break;
	     case  12:
	           weiyi2weizhi++;
	           if(weiyi2weizhi==4)weiyi2weizhi=0; 
	           break;
	     case  13:
	           zhuanxiang2=0;
	           break;
	     case  14:
	           zhuanxiang2=1;
	           break;   
	           
	           
	           
	           
	            
	     case  15:           //  3号电机的设置
	           sudu3num[sudu3weizhi]=pt[1];
	           break;
	     case  16:           
	           sudu3weizhi++;
	           if(sudu3weizhi==4)sudu3weizhi=0;
	           break;
	     case  17:
	           weiyi3num[weiyi3weizhi]=pt[1];
	           break;
	     case  18:
	           weiyi3weizhi++;
	           if(weiyi3weizhi==4)weiyi3weizhi=0; 
	           break;
	     case  19:
	           zhuanxiang3=0;
	           break;
	     case  20:
	           zhuanxiang3=1;
	           break;          
	     default:
	           break;
	   }
	    
	   if(zhuanxiang1==0)            // 1号电机的转向显示
	    {
	      if((dangqian==2)&&(xuhao==0))  
	         GUI_LoadPic1(88,16,zhengzhuan,24,14);
	      else
	         GUI_LoadPic(88,16,zhengzhuan,24,14);
	    }   
	   else
	    {
	      if((dangqian==2)&&(xuhao==0))  
	         GUI_LoadPic1(88,16,fanzhuan,24,14); 
	      else
	         GUI_LoadPic(88,16,fanzhuan,24,14);
	    }
	   if(zhuanxiang2==0)            // 2号电机的转向显示
	    {
	      if((dangqian==2)&&(xuhao==1))   
	        GUI_LoadPic1(88,30,zhengzhuan,24,14);
	      else
	        GUI_LoadPic(88,30,zhengzhuan,24,14);
	    }
	   else
	    {
	      if((dangqian==2)&&(xuhao==1))   
	        GUI_LoadPic1(88,30,fanzhuan,24,14); 
	      else
	        GUI_LoadPic(88,30,fanzhuan,24,14);
	    } 
	      
	   if(zhuanxiang3==0)            // 3号电机的转向显示
	    {
	      if((dangqian==2)&&(xuhao==2))   
	        GUI_LoadPic1(88,44,zhengzhuan,24,14);
	      else
	        GUI_LoadPic(88,44,zhengzhuan,24,14);
	    }
	   else
	    {
	      if((dangqian==2)&&(xuhao==2))   
	        GUI_LoadPic1(88,44,fanzhuan,24,14); 
	      else
	        GUI_LoadPic(88,44,fanzhuan,24,14);
	    }  
	      
	        
	   
         for(i=0;i<4;i++)              // 1号电机的速度显示             
           {
             
               if((i==sudu1weizhi)&&(dangqian==0)&&(xuhao==0))
                 GUI_LoadPic1(8+6*i,21,*(num+sudu1num[i]),5,8);
               else
                 GUI_LoadPic(8+6*i,21,*(num+sudu1num[i]),5,8);
         
           }
     
      
         for(i=0;i<4;i++)              // 1号电机的位移显示
           {   
            if((i==weiyi1weizhi)&&(dangqian==1)&&(xuhao==0))
              GUI_LoadPic1(48+6*i,21,*(num+weiyi1num[i]),5,8);
            else
              GUI_LoadPic(48+6*i,21,*(num+weiyi1num[i]),5,8);
           }
       
       
         for(i=0;i<4;i++)              // 2号电机的速度显示            
           { 
            if((i==sudu2weizhi)&&(dangqian==0)&&(xuhao==1))
              GUI_LoadPic1(8+6*i,35,*(num+sudu2num[i]),5,8);
            else
              GUI_LoadPic(8+6*i,35,*(num+sudu2num[i]),5,8);
           }
       
          
         for(i=0;i<4;i++)              // 2号电机的位移显示
           {   
            if((i==weiyi2weizhi)&&(dangqian==1)&&(xuhao==1))
              GUI_LoadPic1(48+6*i,35,*(num+weiyi2num[i]),5,8);
            else
              GUI_LoadPic(48+6*i,35,*(num+weiyi2num[i]),5,8);
           }
        

         for(i=0;i<4;i++)              // 3号电机的速度显示            
           { 
            if((i==sudu3weizhi)&&(dangqian==0)&&(xuhao==2))
              GUI_LoadPic1(8+6*i,49,*(num+sudu3num[i]),5,8);
            else
              GUI_LoadPic(8+6*i,49,*(num+sudu3num[i]),5,8);
           }
         for(i=0;i<4;i++)              // 3号电机的位移显示
           {   
            if((i==weiyi3weizhi)&&(dangqian==1)&&(xuhao==2))
              GUI_LoadPic1(48+6*i,49,*(num+weiyi3num[i]),5,8);
            else
              GUI_LoadPic(48+6*i,49,*(num+weiyi3num[i]),5,8);
           } 
   
       for(i=0;i<3;i++)              // 电机选项的选定与不选定的显示
         {
             if(i==dangqian)
               GUI_LoadPic1(8+40*i,0,*(hanzi+i),24,14); 
              else
               GUI_LoadPic(8+40*i,0,*(hanzi+i),24,14); 
         }
         
       for(i=0;i<3;i++)              // 电机序号的选定与不选定的状态的显示
         {
             if(i==xuhao)
               GUI_LoadPic1(0,21+14*i,*(num+i+1),5,8); 
              else
               GUI_LoadPic(0,21+14*i,*(num+i+1),5,8); 
         }
     
   } 
}  
		
	
	
	
	
	
	
	
	
	
	
	
	
	
	

⌨️ 快捷键说明

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