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

📄 3.3ucosmovementcontrol.c

📁 UCOSii for c8051f020
💻 C
📖 第 1 页 / 共 2 页
字号:
							  }
		        		else //校验和错误
			          {
								}
				}
		}
 		if(TL_16C554_INIT_SY & 0x04) 
		{
				for(TL16C554RX_i = 0;TL16C554RX_i < RevvCharNumber;TL16C554RX_i++)
				{
					RevvCharFinish_C[TL16C554RX_i + RevvCharNumber_C] = RevvSerialChar_C[TL16C554RX_i];
				}
				if(RevvCharNumber_C == 0x00) 
				{
						RevvCharNumber_C = 0x08;
				}
					else 
					{
							RevvCharNumber_C = 0x00;
					}
				if(RevvCharNumber_C == 0x00)
					{
						for(TL16C554RX_i = 1;TL16C554RX_i<=13;TL16C554RX_i++)
						{
							if(TL16C554RX_i == 1) 
							{
								RxTL16C554CheckSUM = RevvCharFinish_C[1];
							}
							else
							{
								RxTL16C554CheckSUM += RevvCharFinish_C[TL16C554RX_i];
							}
						}
				        RxTL16C554CheckSUM_H = (RxTL16C554CheckSUM & 0xF0) >> 4;
				        RxTL16C554CheckSUM_L = (RxTL16C554CheckSUM & 0x0F);
				        RxTL16C554CheckSUM_H = TO_ASCII(RxTL16C554CheckSUM_H);
				        RxTL16C554CheckSUM_L = TO_ASCII(RxTL16C554CheckSUM_L);
				        if((RevvCharFinish_C[14] == RxTL16C554CheckSUM_H) && (RevvCharFinish_C[15] == RxTL16C554CheckSUM_L))            
				        	{
      						    //---- 数据接收正确,存储数据
								         if(RevvCharFinish_C[3] == 0x06)
								          {
                                    MemTL16C554RX_C = (INT8U *)OSMemGet(CommunicateBUF,&ErrTL16C554Rx);
                                    *(MemTL16C554RX_C + 0) = RevvCharFinish_C[1];
                                    *(MemTL16C554RX_C + 1) = RevvCharFinish_C[2];
                                    
                                    *(MemTL16C554RX_C + 2) = RevvCharFinish_C[4];
                                    *(MemTL16C554RX_C + 3) = RevvCharFinish_C[5];
                                    *(MemTL16C554RX_C + 4) = RevvCharFinish_C[6];
                                    *(MemTL16C554RX_C + 5) = RevvCharFinish_C[7];
                                    
                                    *(MemTL16C554RX_C + 6) = RevvCharFinish_C[9];
                                    *(MemTL16C554RX_C + 7) = RevvCharFinish_C[10];
                                    *(MemTL16C554RX_C + 8) = RevvCharFinish_C[11];
                                    *(MemTL16C554RX_C + 9) = RevvCharFinish_C[12];
                                    OSQPost(RxTL16C554Msg,MemTL16C554RX_C);
                          }
                  }
		        		else //校验和错误
			            {
						      }
					}
		}
 		if(TL_16C554_INIT_SY & 0x08) 
		{
				for(TL16C554RX_i = 0;TL16C554RX_i < RevvCharNumber;TL16C554RX_i++)
				{
					RevvCharFinish_D[TL16C554RX_i + RevvCharNumber_D] = RevvSerialChar_D[TL16C554RX_i];
				}
				if(RevvCharNumber_D == 0x00)
					{
						 RevvCharNumber_D = 0x08;
					}
					else 
					{
							RevvCharNumber_D = 0x00;
					}
				if(RevvCharNumber_D == 0x00)
					{
						for(TL16C554RX_i = 1;TL16C554RX_i<=13;TL16C554RX_i++)
						 {
							if(TL16C554RX_i == 1)
								{
									RxTL16C554CheckSUM = RevvCharFinish_D[1];
								}
								else
									{
										RxTL16C554CheckSUM += RevvCharFinish_D[TL16C554RX_i];
									}
							}
				        RxTL16C554CheckSUM_H = (RxTL16C554CheckSUM & 0xF0) >> 4;
				        RxTL16C554CheckSUM_L = (RxTL16C554CheckSUM & 0x0F);
				        RxTL16C554CheckSUM_H = TO_ASCII(RxTL16C554CheckSUM_H);
				        RxTL16C554CheckSUM_L = TO_ASCII(RxTL16C554CheckSUM_L);
				        if((RevvCharFinish_D[14] == RxTL16C554CheckSUM_H) && (RevvCharFinish_D[15] == RxTL16C554CheckSUM_L))
				            //---- 数据接收正确,存储数据
				            {
								   						if(RevvCharFinish_D[3] == 0x06)
 															{           							
                                    MemTL16C554RX_D = (INT8U *)OSMemGet(CommunicateBUF,&ErrTL16C554Rx);
                                    *(MemTL16C554RX_D + 0) = RevvCharFinish_D[1];
                                    *(MemTL16C554RX_D + 1) = RevvCharFinish_D[2];
                                    
                                    *(MemTL16C554RX_D + 2) = RevvCharFinish_D[4];
                                    *(MemTL16C554RX_D + 3) = RevvCharFinish_D[5];
                                    *(MemTL16C554RX_D + 4) = RevvCharFinish_D[6];
                                    *(MemTL16C554RX_D + 5) = RevvCharFinish_D[7];
                                    
                                    *(MemTL16C554RX_D + 6) = RevvCharFinish_D[9];
                                    *(MemTL16C554RX_D + 7) = RevvCharFinish_D[10];
                                    *(MemTL16C554RX_D + 8) = RevvCharFinish_D[11];
                                    *(MemTL16C554RX_D + 9) = RevvCharFinish_D[12];
                                    OSQPost(RxTL16C554Msg,MemTL16C554RX_D);
                              }
                    }
							  	else //校验和错误
			            {
						      }
					}
	  }
  }
}*/
void TL16C554communicateTX(void *nouse) reentrant
{
  INT8U ErrTL16C554Tx;
	INT8U TL16C554TxCheckSUM;
  INT8U TL16C554TxCheckSUM_H,TL16C554TxCheckSUM_L;
  INT8U *MemTL16C554TX;
    
  nouse = nouse;

	while(1)
	{
     MemTL16C554TX = (INT8U *)OSQPend(TxTL16C554Msg, 0, &ErrTL16C554Tx);
	   if(*(MemTL16C554TX + 0) == 0x01)
	  	{
	      SendTL16C554_BUF[0] = 0x01;
        SendTL16C554_BUF[1] = *(MemTL16C554TX + 1);
        SendTL16C554_BUF[2] = *(MemTL16C554TX + 2);
        SendTL16C554_BUF[3] = 0x05;
        SendTL16C554_BUF[4] = *(MemTL16C554TX + 3);
        SendTL16C554_BUF[5] = *(MemTL16C554TX + 4);
        SendTL16C554_BUF[6] = *(MemTL16C554TX + 5);
        SendTL16C554_BUF[7] = *(MemTL16C554TX + 6);
        SendTL16C554_BUF[8] = 0x20;
        SendTL16C554_BUF[9] = *(MemTL16C554TX + 7);
        SendTL16C554_BUF[10] = *(MemTL16C554TX + 8);
        SendTL16C554_BUF[11] = *(MemTL16C554TX + 9);
        SendTL16C554_BUF[12] = *(MemTL16C554TX + 10); 
        SendTL16C554_BUF[13] = 0x03;       
    		OSMemPut(CommunicateBUF,MemTL16C554TX);
     		for(TL16C554TX_i = 1;TL16C554TX_i <= 13;TL16C554TX_i++)
	   		{            
	    		if(TL16C554TX_i == 1)
	  			{
      			TL16C554TxCheckSUM = SendTL16C554_BUF[TL16C554TX_i];
	  			}
	  				else
	     			{
         			TL16C554TxCheckSUM += SendTL16C554_BUF[TL16C554TX_i];
	     			}
	    	}
	      TL16C554TxCheckSUM_H = (TL16C554TxCheckSUM & 0xF0) >> 4;
        TL16C554TxCheckSUM_L = (TL16C554TxCheckSUM & 0x0F);
        SendTL16C554_BUF[14] = TO_ASCII(TL16C554TxCheckSUM_H);
        SendTL16C554_BUF[15] = TO_ASCII(TL16C554TxCheckSUM_L);
        if(SendTL16C554_BUF[1] == '0')
        	{
        		if((RS485_CanSend == 1)&&(RS485_CanRevv == 1))
        			{
        				RS485_SendStart();
        				RS485_CanSend = 0;					//发送不允许
					  		RS485_CanRevv = 0;					
     						for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)
     						{
     							SendChar_UART_B(SendTL16C554_BUF[TL16C554TX_i]);     
     						}
     					}
     					else
     				{
     					///////////////////////////////////////////
     				}
     	}
     	else
     		{
     			if(RS232_CanSend == 1)
     			{
     				RS232_CanSend = 0;                                 					
     			 	for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)    					
     				{                                                      					
     						SendChar_UART_C(SendTL16C554_BUF[TL16C554TX_i]);     					
     						SendChar_UART_D(SendTL16C554_BUF[TL16C554TX_i]);     					
     				}                                                      					
     			}
      	}
     	}
     	else 
     		if(*(MemTL16C554TX + 0) == 0x5A)
     		{
     			SendTL16C554_BUF[0] = 0x5A;
     		}
  }     
}       
void TL16C554communicateProcess(void *nouse) reentrant
{
	    INT8U ErrTL16C554CP;
	    INT8U *MsgTL16C554CP;
	    INT8U *MemTL16C554CP;
	    nouse = nouse;
	    
	    while(1)
	    {
	    	MsgTL16C554CP = (INT8U *)OSQPend(TL16C554TestMsg,0, &ErrTL16C554CP);
	    	MemTL16C554CP = (INT8U *)OSMemGet(CommunicateBUF,&ErrTL16C554CP);
						for(i=0;i<=10;i++)
						{
							*(MemTL16C554CP + i) = movementspeed[(INT8U)MsgTL16C554CP][i];
						}
							OSQPost(TxTL16C554Msg,MemTL16C554CP);
		
	    }   
            
}           
void TL16C554TestTask(void *nouse) reentrant
{
	    //INT8U ErrTL16C554TT;
	    //INT8U *MemTL16C554TT;
	    nouse = nouse;
	    while(1)
	    {
	    	OSQPost(TL16C554TestMsg,(void *)TL_LowSpeed_R);
			OSTimeDly(OS_TICKS_PER_SEC * 1);
			OSQPost(TL16C554TestMsg,(void *)T_LowSpeed_R);
	    	OSTimeDly(OS_TICKS_PER_SEC * 8);
			OSQPost(TL16C554TestMsg,(void *)TL_Movement_Stop);
			OSTimeDly(OS_TICKS_PER_SEC * 1);
			OSQPost(TL16C554TestMsg,(void *)T_Movement_Stop);
	    	OSTimeDly(OS_TICKS_PER_SEC * 2);
	    	OSQPost(TL16C554TestMsg,(void *)TL_LowSpeed_F);
			OSTimeDly(OS_TICKS_PER_SEC * 1);
	    	OSQPost(TL16C554TestMsg,(void *)T_LowSpeed_F);
	    	OSTimeDly(OS_TICKS_PER_SEC * 8);
			OSQPost(TL16C554TestMsg,(void *)TL_Movement_Stop);
			OSTimeDly(OS_TICKS_PER_SEC * 1);
			OSQPost(TL16C554TestMsg,(void *)T_Movement_Stop);
	    	OSTimeDly(OS_TICKS_PER_SEC * 2);
	    	//OSQPost(TL16C554TestMsg,&Temp2);
	    	//OSQPost(TL16C554TestMsg,(void *)15);
	    }

}        

    	

⌨️ 快捷键说明

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