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

📄 ucosmovementcontrol.c.bak

📁 UCOSii for c8051f020
💻 BAK
📖 第 1 页 / 共 2 页
字号:
      		TL16C554RS485Tx_BUF[14] = TO_ASCII(FRENIC_RS485TXCheckSUM_H);
      		TL16C554RS485Tx_BUF[15] = TO_ASCII(FRENIC_RS485TXCheckSUM_L);
      		RS485_SendStart();
      		RS485_CanSend = FALSE;
      		RS485_CanRevv = FALSE;
     			for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)
     			{
     				SendChar_UART_B(TL16C554RS485Tx_BUF[TL16C554TX_i]);     
     			}
     }
}
     	else
     	{
     		FRENIC_RS485_Tx = (INT8U *)OSMboxPend (FRENIC_RS485TxMbox, 0, &ErrFRENIC_RS485TX);
     		switch((INT8U)FRENIC_RS485_Tx)
     		{                       
     			case 0:///////
     				{
     				RS485_SendStart();
      				RS485_CanSend = 0;
      				RS485_CanRevv = 0;
     					for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)
     					{
     						SendChar_UART_B(TL16C554RS485Tx_BUF[TL16C554TX_i]);     
     					}
     					ErrRS485Number++;
     					if(ErrRS485Number == 3)
     						{
     							RS485_SendNew = TRUE;
     							////////////此处需要返回错误信息
     						}
     						break;
     				}
					case 1:///////             
				  	{                        
				  		RS485_SendStart();
				  		RS485_CanSend = 0;
				  		RS485_CanRevv = 0;
				  		for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)        
				  		{                                                         
				  			SendChar_UART_B(TL16C554RS485Tx_BUF[TL16C554TX_i]);     
				  		}                                                         
				  		break;			           
				  	}
					case 2:
					{
						RS485_SendNew = TRUE;
						break;
					}
				  default:
				  	break;                       
     		}                       
     		      	      
  }     
	}
}       
//----变频器发送处理任务
void FRENIC_RS485TXProcess(void *nouse) reentrant
{
	 INT8U ErrFRENIC_RS485TP;
	 INT8U *MsgFRENIC_RS485TP;
	 INT8U *MemFRENIC_RS485TP;
	 INT8U FRENICRun_SY;

	 nouse = nouse;
	 
	 while(1)
	 {
	 	MsgFRENIC_RS485TP = (INT8U *)OSQPend(TL16C554TestMsg,100, &ErrFRENIC_RS485TP);///////接收发送命令信号量,1S超时
	 	if(ErrFRENIC_RS485TP == OS_TIMEOUT)
	 	{
	 		if(CHECK_STATUS(TTMovement_SY,TT_P_L))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TT_Speed[TT_P_L][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(TTMovement_SY,TT_P_H))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TT_speed[TT_P_H][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(TTMovement_SY,TT_N_L))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TT_speed[TT_N_L][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(TTMovement_SY,TT_N_H))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TT_speed[TT_N_H][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(TLMovement_SY,TL_Head_L))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_L][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(TLMovement_SY,TL_Head_H))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_H][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(TLMovement_SY,TL_Foot_L))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_L][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(TLMovement_SY,TL_Foot_H))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_H][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(SCMovement_SY,SC_Head_L))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_L][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(SCMovement_SY,SC_Head_H))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_H][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(SCMovement_SY,SC_Foot_L))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_L][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(SCMovement_SY,SC_Foot_H))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_H][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(SIDMovement_SY,SID_Up))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Up][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 		if(CHECK_STATUS(SIDMovement_SY,SID_Down))
	 		{
	 			MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 			for(i=0;i<=10;i++)
		  	{
		  		*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Down][i];
		  	}
		  	OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
	 		}
	 	}
	 	else
	 	{
	 		MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
	 		FRENICRun_SY = (INT8U)MsgFRENIC_RS485TP;
	 		switch(FRENICRun_SY&0xF0)
	 		{
	 			case TT_Address:
	 			{
	 					TTMovement_SY = 0;
	 					switch(FRENICRun_SY&0x0F)
	 					{
	 						case TT_P_L:
	 						{
	 							SET_STATUS(TTMovement_SY,TT_P_L);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TT_Speed[TT_P_L][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TT_P_H:
	 						{
	 							SET_STATUS(TTMovement_SY,TT_P_H);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TT_Speed[TT_P_H][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TT_N_L:
	 						{
	 							SET_STATUS(TTMovement_SY,TT_N_L);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TT_Speed[TT_N_L][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TT_N_H:
	 						{
	 							SET_STATUS(TTMovement_SY,TT_N_H);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TT_Speed[TT_N_H][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TT_Stop:
	 						{
	 							SET_STATUS(TTMovement_SY,TT_Stop);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TT_Speed[TT_Stop][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						default:
	 							break;
	 					}
	 					break;
	 			}
	 			case TL_Address:
	 			{
	 					TLMovement_SY = 0;
	 					switch(FRENICRun_SY&0x0F)
	 					{
	 						case TL_Head_L:
	 						{
	 							SET_STATUS(TLMovement_SY,TL_Head_L);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_L][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TL_Head_H:
	 						{
	 							SET_STATUS(TLMovement_SY,TL_Head_H);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_H][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TL_Foot_L:
	 						{
	 							SET_STATUS(TLMovement_SY,TL_Foot_L);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_L][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TL_Foot_H:
	 						{
	 							SET_STATUS(TLMovement_SY,TL_Foot_H);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_H][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case TL_Stop:
	 						{
	 							SET_STATUS(TLMovement_SY,TL_Stop);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Stop][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						default:
	 							break;
	 					}
	 					break;
	 			}
	 			case SC_Address:
	 			{
	 					SCMovement_SY = 0;
	 					switch(FRENICRun_SY&0x0F)
	 					{
	 						case SC_Head_L:
	 						{
	 							SET_STATUS(SCMovement_SY,SC_Head_L);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_L][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case SC_Head_H:
	 						{
	 							SET_STATUS(SCMovement_SY,SC_Head_H);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_H][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case SC_Foot_L:
	 						{
	 							SET_STATUS(SCMovement_SY,SC_Foot_L);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_L][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case SC_Foot_H:
	 						{
	 							SET_STATUS(SCMovement_SY,SC_Foot_H);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_H][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case SC_Stop:
	 						{
	 							SET_STATUS(SCMovement_SY,SC_Stop);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Stop][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						default:
	 							break;
	 					}
	 					break;
	 			}
	 			case SID_Address:
	 			{
	 					SIDMovement_SY = 0;
	 					switch(FRENICRun_SY&0x0F)
	 					{
	 						case SID_Up:
	 						{
	 							SET_STATUS(SIDMovement_SY,SID_Up);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Up][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case SID_Down:
	 						{
	 							SET_STATUS(SIDMovement_SY,SID_Down);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Down][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case SC_Foot_L:
	 						{
	 							SET_STATUS(SCMovement_SY,SC_Foot_L);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_L][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						case SC_Foot_H:
	 						{
	 							SET_STATUS(SCMovement_SY,SC_Foot_H);
	 							for(i=0;i<=10;i++)
		  					{
		  						*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_H][i];
		  					}
		  					OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
		  					break;
	 						}
	 						default:
	 							break;
	 					}
	 					break;
	 			}
	 		}
	 	}
	 }
}
void TL16C554TestTask(void *nouse) reentrant
{
	    nouse = nouse;
	    while(1)
	    {
	    OSQPost(TL16C554TestMsg,(void *)TL_LowSpeed_Head);
			OSQPost(TL16C554TestMsg,(void *)SC_LowSpeed_Head);
			OSQPost(TL16C554TestMsg,(void *)TT_LowSpeed_N);
			OSQPost(TL16C554TestMsg,(void *)SID_Movement_Up);
    	OSTimeDly(OS_TICKS_PER_SEC * 8);
			OSQPost(TL16C554TestMsg,(void *)TL_Movement_Stop);
			OSQPost(TL16C554TestMsg,(void *)SC_Movement_Stop);
			OSQPost(TL16C554TestMsg,(void *)TT_Movement_Stop);
			OSQPost(TL16C554TestMsg,(void *)SID_Movement_Stop);
			OSTimeDly(OS_TICKS_PER_SEC * 3);
			OSQPost(TL16C554TestMsg,(void *)TL_LowSpeed_Foot);
			OSQPost(TL16C554TestMsg,(void *)SC_LowSpeed_Foot);
			OSQPost(TL16C554TestMsg,(void *)TT_LowSpeed_P);
			OSQPost(TL16C554TestMsg,(void *)SID_Movement_Down);
			OSTimeDly(OS_TICKS_PER_SEC * 8);	
			OSQPost(TL16C554TestMsg,(void *)TL_Movement_Stop);
			OSQPost(TL16C554TestMsg,(void *)SC_Movement_Stop);
			OSQPost(TL16C554TestMsg,(void *)TT_Movement_Stop);
			OSQPost(TL16C554TestMsg,(void *)SID_Movement_Stop);
			OSTimeDly(OS_TICKS_PER_SEC * 3);				    	
	    }

}        

    	

⌨️ 快捷键说明

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