diff --git a/HARDWARE/ADC/adc.c b/HARDWARE/ADC/adc.c index 69c4b2f8ea901196d5a21175aac61248c83798a4..aeae4a4350d91834c28c0b398311eda3bbb402c3 100644 --- a/HARDWARE/ADC/adc.c +++ b/HARDWARE/ADC/adc.c @@ -11,7 +11,7 @@ #define rccMY_ADC RCC_APB2Periph_ADC1 #define MY_ADC ADC1 static uint16_t pres_get_t=40; -static int16_t AIR_DELDA_P = -370; +static int16_t AIR_DELDA_P = -310; static uint16_t x_data[ADC_CHANNELS_NUM]={0,0,0,0,0,0,0}; //×ÔÈ»ÎÞÎü¸½Á¦Ê±¸÷ÎüÅÌѹÁ¦»ù´¡Öµ SHELL_EXPORT_VAR(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_VAR_SHORT), @@ -240,6 +240,8 @@ void airPress_LED_task(void* pp) x_data[6]=data[6]; //±£´æÎ¶ÈÖµ if(5==a){ send_adc_val(data); + vTaskDelay(5); + send_manual_adc(x_data); a=0; } vTaskDelay(pres_get_t); diff --git a/HARDWARE/ADC/adc.h b/HARDWARE/ADC/adc.h index 9c71dc89a23827af0950082f16a27808c0cb9425..b82fd89bcae2a73386dd8e968656c1ca3387b6d2 100644 --- a/HARDWARE/ADC/adc.h +++ b/HARDWARE/ADC/adc.h @@ -9,6 +9,7 @@ void Adc_Init(void); u16 Get_Adc_Val(uint16_t* pDataBuffer); u16 Get_Adc_AverageVal(u8 ch,u8 times); +int manual_update_xdata(int sample_num, int doWrite); #endif diff --git a/HARDWARE/ANO/ano_protocol.c b/HARDWARE/ANO/ano_protocol.c index 85cc885ba378c469e73090b73ae2cb14faa3577a..ea8f804f5e4d3be273befc78a3720d5e5e59c261 100644 --- a/HARDWARE/ANO/ano_protocol.c +++ b/HARDWARE/ANO/ano_protocol.c @@ -1,10 +1,17 @@ #include "ano_protocol.h" +#include "pwm.h" +#include "adc.h" +#include "LobotSerialServo.h" xQueueHandle PacketTx_2_UsartTxQueue; +xQueueHandle UsartRx_2_PacketAnalyQueue; + +extern int give_pax_task_cmd(uint32_t dir, uint32_t step_num); void RX_Queue_init(void) { PacketTx_2_UsartTxQueue = xQueueCreate(20, sizeof(ANO_t)); // ´ÓÈÎÎñUsartRxTask·¢ËͶÓÁе½ANOAnlTask + UsartRx_2_PacketAnalyQueue = xQueueCreate(10, 15 ); //¶ÓÁд´½¨xQueueCreate£¨ÏûÏ¢¶ÓÁеĴóС¼¼¼´¿ÉÒԷŶàÉÙ¸öÏûÏ¢£¬Ã¿¸öÏûÏ¢µÄ´óС£© if(NULL != PacketTx_2_UsartTxQueue) { @@ -29,8 +36,6 @@ void usart_send_packet(const ANO_t *ano) xQueueSend(PacketTx_2_UsartTxQueue, ano, 0); } - - /* ********************************************************************************************************* * º¯ÊýÃû³Æ: send_adc_val @@ -41,12 +46,12 @@ void usart_send_packet(const ANO_t *ano) */ void send_adc_val(const uint16_t *adc) { - uint16_t adc1=adc[0]; - uint16_t adc2=adc[1]; - uint16_t adc3=adc[2]; - uint16_t adc4=adc[3]; - uint16_t adc5=adc[4]; - uint16_t adc6=adc[5]; + uint16_t adc1=adc[0]; + uint16_t adc2=adc[1]; + uint16_t adc3=adc[2]; + uint16_t adc4=adc[3]; + uint16_t adc5=adc[4]; + uint16_t adc6=adc[5]; uint8_t _cnt = 0, i, sc = 0; ANO_t ano; @@ -93,12 +98,12 @@ void send_adc_val(const uint16_t *adc) */ void send_manual_adc(const uint16_t *adc) { - uint16_t adc1=adc[0]; - uint16_t adc2=adc[1]; - uint16_t adc3=adc[2]; - uint16_t adc4=adc[3]; - uint16_t adc5=adc[4]; - uint16_t adc6=adc[5]; + uint16_t adc1=adc[0]; + uint16_t adc2=adc[1]; + uint16_t adc3=adc[2]; + uint16_t adc4=adc[3]; + uint16_t adc5=adc[4]; + uint16_t adc6=adc[5]; uint8_t _cnt = 0, i, sc = 0; ANO_t ano; @@ -133,3 +138,69 @@ void send_manual_adc(const uint16_t *adc) usart_send_packet(&ano); } + + +/* +********************************************************************************************************* +* º¯ÊýÃû³Æ: check_sum +* ¹¦ÄÜ˵Ã÷: ¶ÔºÍУÑé½øÐÄÑéÖ¤ +* ÊäÈë²ÎÊý£ºANO_t:ÄäÃûЭÒé½á¹¹Ìå +* ·µ»Ø²ÎÊý:u8 +********************************************************************************************************* +*/ +uint8_t sum_check(ANO_t *protocol_packet) +{ + int sum = 0; + sum += protocol_packet->head; + sum += protocol_packet->d_addr; + sum += protocol_packet->id; + sum += protocol_packet->datalen; + for(int i = 0; i < protocol_packet->datalen; i++) + { + sum += protocol_packet->data[i]; + } + return sum; +} + +/* +********************************************************************************************************* +* º¯ÊýÃû³Æ: analy_receive_packet +* ¹¦ÄÜ˵Ã÷: Êý¾Ý½âÎö²¢Ö´ÐжÔÓ¦²Ù×÷ +* ÊäÈë²ÎÊý£ºANO_t:ÄäÃûЭÒé½á¹¹Ìå +* ·µ»Ø²ÎÊý: ÎÞ +********************************************************************************************************* +*/ +void analy_receive_packet(ANO_t *protocol_packet) +{ + uint8_t data1_cmd; + uint8_t data2_cmd; + uint32_t data3_cmd; + + if(protocol_packet->id == ScrewMotor_cmd) //Ë¿¸ÜÔ˶¯¿ØÖÆ + { + data1_cmd=protocol_packet->data[0]; // + data2_cmd=protocol_packet->data[1]; + data3_cmd=(data2_cmd<<8)+data1_cmd; + GiveScrewMotorCmd(data3_cmd,NULL); + } + + if(protocol_packet->id == update_xdata_cmd) //»ù´¡Ñ¹Á¦Öµ¸üпØÖÆ + { + data1_cmd=protocol_packet->data[0]; + manual_update_xdata(data1_cmd, 1); + } + + if(protocol_packet->id == pax_cmd) //ÅÀÐÐÖ¸Áî¿ØÖÆ + { + data1_cmd=protocol_packet->data[0]; + data2_cmd=protocol_packet->data[1]; + give_pax_task_cmd(data1_cmd, data2_cmd); + } + if(protocol_packet->id == joint_cmd) //¹Ø½ÚÔ˶¯¿ØÖÆ + { + data1_cmd=protocol_packet->data[0]; + data2_cmd=protocol_packet->data[1]; + data3_cmd=(data2_cmd<<8)+data1_cmd; + GiveJointCtrlTaskCmd(data3_cmd); + } +} \ No newline at end of file diff --git a/HARDWARE/ANO/ano_protocol.h b/HARDWARE/ANO/ano_protocol.h index b73e132f2a8f8e196e6c36c0e0d352e25f541869..59fc49e350ce264c38808a4137926a5721667e78 100644 --- a/HARDWARE/ANO/ano_protocol.h +++ b/HARDWARE/ANO/ano_protocol.h @@ -32,8 +32,6 @@ typedef enum UP_Speed = 0x07, //·ÉÐÐËÙ¶ÈÊý¾Ý UP_TargetAngles = 0x0A, //Ä¿±ê×Ë̬Êý¾Ý UP_TargetSpeed = 0x0B, //Ä¿±êËÙ¶ÈÊý¾Ý - UP_LogPrintf = 0xA0, //LOGÐÅÏ¢Êä³ö¡ª¡ª×Ö·û´® - UP_LogPrintfNum = 0xA1, //LOGÐÅÏ¢Êä³ö¡ª¡ª×Ö·û´®+Êý×Ö /**************************·É¿Ø¿ØÖÆÁ¿Êä³öÀà******************************/ UP_PWM = 0x20, //PWM¿ØÖÆÁ¿ @@ -49,8 +47,14 @@ typedef enum send_param_switch = 0xF0, //²ÎÊý·µ»Ø UP_Light_PWM = 0xF1, //µÆ¹âPWMÖµ - send_adc = 0x51 , //·¢ËÍѹÁ¦´«¸ÐÆ÷Öµ - manual_adc = 0x61 , //·¢ËÍ»ù´¡Ñ¹Á¦Öµ + send_adc = 0x51 , //·¢ËÍѹÁ¦´«¸ÐÆ÷Öµ + manual_adc = 0x61 , //·¢ËÍ»ù´¡Ñ¹Á¦Öµ + + ScrewMotor_cmd =0x52, //½ÓÊÕË¿¸ÜÔ˶¯Ö¸Áî + update_xdata_cmd =0x55, //¸üлù´¡Ñ¹Á¦ÖµÖ¸Áî + pax_cmd =0x62, //½ÓÊÕÅÀÐÐÖ¸Áî + joint_cmd =0x66, //¹Ø½ÚÖ¸Áî + /****************************Áé»î¸ñʽ֡********************************/ /*¹¦ÄÜÂ뷶Χ£º0xF1-0xFA*/ @@ -77,5 +81,7 @@ void RX_Queue_init(void); void usart_send_packet(const ANO_t *ano); void send_adc_val(const uint16_t *adc); void send_manual_adc(const uint16_t *adc); +uint8_t sum_check(ANO_t *protocol_packet); +void analy_receive_packet(ANO_t *protocol_packet); #endif diff --git a/HARDWARE/ANO/usartlink.c b/HARDWARE/ANO/usartlink.c index af96d7388b66924c662533df54d60e0e13233030..e13d37a35d5b4b518be27f83de1d82f906bafdb8 100644 --- a/HARDWARE/ANO/usartlink.c +++ b/HARDWARE/ANO/usartlink.c @@ -2,6 +2,7 @@ #include "usartlink.h" #include "ano_protocol.h" #include "usart4.h" +#include "shell.h" //²»Í¬Çé¿öÏÂʹÓÃÄĸö´®¿Ú½øÐе÷ÊÔ #define USART1_TX 0 @@ -11,7 +12,7 @@ extern xQueueHandle PacketTx_2_UsartTxQueue; - +extern xQueueHandle UsartRx_2_PacketAnalyQueue; static bool isUartDmaInitialized; @@ -105,7 +106,6 @@ void __attribute__((used)) DMA1_Stream4_IRQHandler(void) */ void usart_tx_task(void *param) { - RX_Queue_init(); uartslkDmaInit(); ANO_t data_packet;//ÊÇANO_tÀàÐ͵ĽṹÌå±äÁ¿ @@ -127,5 +127,56 @@ void usart_tx_task(void *param) } } +int ww=0; +SHELL_EXPORT_VAR(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_VAR_INT), +ww, &ww,´òÓ¡); +/* +********************************************************************************************************* +* º¯ÊýÃû³Æ: packet_analy_task +* ¹¦ÄÜ˵Ã÷: Êý¾Ý°ü½âÎöÈÎÎñ£¬½«¶ÓÁÐUsartRx_2_ANOAnlQueueµÄÊý¾Ý·ÅÈë½á¹¹ÌåanoÖÐ +* ÊäÈë²ÎÊý£ºÎÞ +* ·µ»Ø²ÎÊý: ÎÞ +* ºÃÏñûÓжÔÊý¾Ý½øÐÐÏà¼ÓУÑéºÍ¸½¼ÓУÑé +* protocol +********************************************************************************************************* +*/ +void packet_analy_task(void *param) +{ + ANO_t protocol_packet; + BaseType_t xReturn = pdTRUE; + u8 c[15]={0}; + + while(1) + { + xReturn=xQueueReceive(UsartRx_2_PacketAnalyQueue, c, 1000);//ÅжÏÊÇ·ñ´ÓsartRx_2_PacketAnalyQueue¶ÓÁÐÖлñµÃÊý¾Ý + if(pdFALSE==xReturn) continue; + else{ + if(ww){ + printf("Recieved cmd_pkg: "); + for(int i=0;i=0x40 && data[2]<=0xf0)){ // ÀàÐͳõУÑé + *pnum = 0; + return; + } + if(!(data[3]>=2 && data[3]<=20)){ //³¤¶È³õУÑé + *pnum = 0; + return; + } + }else if(4==num){ + *pnum = 0; + return; + } + if(num > 4+data[3]){ + xQueueSendToBackFromISR(UsartRx_2_PacketAnalyQueue,data,&flag); + *pnum = 0; + if(flag == pdTRUE) + portYIELD_FROM_ISR(flag); //Èç¹ûÐèÒªµÄ»°½øÐÐÒ»´ÎÈÎÎñÇл» + } + + +} /* ********************************************************************************************************* -* º¯ÊýÃû³Æ: Uart4_Put_Buf -* ¹¦ÄÜ˵Ã÷: ´®¿Ú4·¢ËÍ×Ö·û´® -* ÊäÈë²ÎÊý£ºDataToSend£º´ý·¢ËÍ×Ö·ûÊ×µØÖ·£»data_num£º×Ö·û´®³¤¶È +* º¯ÊýÃû³Æ: UART4_IRQHandler +* ¹¦ÄÜ˵Ã÷: ´®¿Ú4µÄÖжϺ¯Êý£¬´¥·¢ÖжϷ¢ËͶÓÁÐ +* ÊäÈë²ÎÊý£ºÎÞ * ·µ»Ø²ÎÊý: ÎÞ ********************************************************************************************************* +*/ +uint8_t uart4_rx_data[20]; +uint32_t rx4_cnt = 0; -void Uart4_Put_Buf(unsigned char *DataToSend, int32_t data_num) +void UART4_IRQHandler(void) //´®¿Ú4ÖжϷþÎñ³ÌÐò { - int32_t i; - portENTER_CRITICAL(); - for(i=0; iCR1 & USART_CR1_TXEIE)) + uint8_t Res; + if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET) { - USART_ITConfig(UART4, USART_IT_TXE, ENABLE); //´ò¿ª·¢ËÍÖÐ¶Ï - } -}*/ + Res = USART_ReceiveData(UART4); //(USART4->DR); //¶ÁÈ¡½ÓÊÕµ½µÄÊý¾Ý¥ + uart4_rx_data[rx4_cnt++] = Res; + process_rx4_data(uart4_rx_data,&rx4_cnt); + } + +} + -/*------------------------------------------- End Line ---------------------------------------------------*/ diff --git a/SYSTEM/usart/usart4.h b/SYSTEM/usart/usart4.h index 29ab8543d2d265967cb00a60ebcdd794308c6a66..69fc976cecbb55c7fca680e134efea77b62797c9 100644 --- a/SYSTEM/usart/usart4.h +++ b/SYSTEM/usart/usart4.h @@ -13,12 +13,11 @@ #include "semphr.h" -#define USART4_MAX_RECV_LEN 32 //×î´ó½ÓÊÕ»º´æ×Ö½ÚÊý -#define USART4_MAX_SEND_LEN 32 //×î´ó·¢ËÍ»º´æ×Ö½ÚÊý + void uart4_Init(u32 bound); void Uart4_Put_Buf(unsigned char *DataToSend, int32_t data_num); -// void Uart4_Put_Char(unsigned char DataToSend); ×÷·ÏÕâ¸öº¯Êý + #endif diff --git a/USER/USER.uvguix.jiangke1 b/USER/USER.uvguix.jiangke1 index d481871c331d21a306acb2282498caa827bca8f8..d5c43875cb6ab0e2f6378d5568c9748e88d48535 100644 --- a/USER/USER.uvguix.jiangke1 +++ b/USER/USER.uvguix.jiangke1 @@ -75,25 +75,25 @@ 2 3 - -1 - -1 + -32000 + -32000 -1 -1 - 38 - 60 - 1654 - 1095 + 61 + 36 + 1630 + 1118 0 - 1351 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000B00000002000000010000004F433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C53595354454D5C75736172745C7573617274342E6300000000087573617274342E6300000000F6FA7D00FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C555345525C706178696E675F6374726C2E63000000000D706178696E675F6374726C2E6300000000EAD6A300FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C4144435C6164632E6300000000056164632E6300000000B3A6BE00FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C4C45445C6C65642E6300000000056C65642E6300000000A5C2D700FFFFFFFF45433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C555345525C6D61696E2E6300000000066D61696E2E6300000000D9ADC200FFFFFFFF5D433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C4C6F626F7453657269616C536572766F5C4C6F626F7453657269616C536572766F2E6300000000124C6F626F7453657269616C536572766F2E6300000000F7B88600FFFFFFFF52433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C75736172746C696E6B2E63000000000B75736172746C696E6B2E63000000009CC1B600FFFFFFFF55433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C616E6F5F70726F746F636F6C2E63000000000E616E6F5F70726F746F636F6C2E6300000000BCA8E100FFFFFFFF55433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C616E6F5F70726F746F636F6C2E68000000000E616E6F5F70726F746F636F6C2E6800000000F0A0A100FFFFFFFF4E433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C4C45445C76616C76652E68000000000776616C76652E6800000000BECEA100FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C4C45445C6C65642E6800000000056C65642E6800000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006E010000660000008007000066030000 + 1688 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000E00000008000000010000005D433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C4C6F626F7453657269616C536572766F5C4C6F626F7453657269616C536572766F2E6300000000124C6F626F7453657269616C536572766F2E6300000000B5E99D00FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C555345525C706178696E675F6374726C2E63000000000D706178696E675F6374726C2E6300000000F6FA7D00FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C4144435C6164632E6300000000056164632E6300000000EAD6A300FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C4C45445C6C65642E6300000000056C65642E6300000000B3A6BE00FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C50574D5C70776D2E63000000000570776D2E6300000000A5C2D700FFFFFFFF45433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C555345525C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFF55433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C616E6F5F70726F746F636F6C2E63000000000E616E6F5F70726F746F636F6C2E6300000000BCA8E100FFFFFFFF4F433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C53595354454D5C75736172745C7573617274342E6300000000087573617274342E6300000000F0A0A100FFFFFFFF52433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C75736172746C696E6B2E63000000000B75736172746C696E6B2E6300000000BECEA100FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C555345525C7461736B735F656E7472792E68000000000D7461736B735F656E7472792E6800000000FFDC7800FFFFFFFF4F433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C53595354454D5C75736172745C7573617274342E6800000000087573617274342E6800000000F7B88600FFFFFFFF55433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C616E6F5F70726F746F636F6C2E68000000000E616E6F5F70726F746F636F6C2E6800000000D9ADC200FFFFFFFF4C433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C4144435C6164632E6800000000056164632E68000000005FC3CF00FFFFFFFF5D433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C4C6F626F7453657269616C536572766F5C4C6F626F7453657269616C536572766F2E6800000000124C6F626F7453657269616C536572766F2E6800000000C1838300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006E010000660000008007000066030000 @@ -1288,7 +1288,7 @@ File 2306 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000035041389600000000000000140003504138054750494F43054750494F450CC9E8D6C3B6E6BBFAD0C249440275381556414C56455F464C4F41545F4C4547535F534F46540373657019784576656E7447726F75705365744269747346726F6D495352077475726E5F4C52047475726E0A675F6D6F746F7250574D036C65640A646565705F65787472610D4D4F544F525F4D494E5F50574D0D70446174612D3E7461726765740E5049445F4F55545055545F4D4158087069645F6D61786F105348454C4C5F4558504F52545F5641521070726F636573735F646565705F63746C0B646565705F7461726765740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000035041389600000000000000140003504138054750494F43054750494F450CC9E8D6C3B6E6BBFAD0C249440275381556414C56455F464C4F41545F4C4547535F534F46540373657019784576656E7447726F75705365744269747346726F6D495352077475726E5F4C52047475726E0A675F6D6F746F7250574D036C65640A646565705F65787472610D4D4F544F525F4D494E5F50574D0D70446174612D3E7461726765740E5049445F4F55545055545F4D4158087069645F6D61786F105348454C4C5F4558504F52545F5641521070726F636573735F646565705F63746C0B646565705F7461726765740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -1320,7 +1320,7 @@ Debug 2220 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1344,57 +1344,75 @@ 0 100 - 2 + 8 - ..\SYSTEM\usart\usart4.c - 0 + ..\LobotSerialServo\LobotSerialServo.c + 16 1 - 1 + 4 1 0 .\paxing_ctrl.c - 31 + 13 1 - 302 + 1 1 0 ..\HARDWARE\ADC\adc.c - 1 - 189 - 247 + 19 + 242 + 259 1 0 ..\HARDWARE\LED\led.c - 12 - 2 - 3 + 0 + 1 + 1 + 1 + + 0 + + + ..\HARDWARE\PWM\pwm.c + 0 + 143 + 153 1 0 .\main.c - 24 - 52 - 60 + 19 + 2 + 6 1 0 - ..\LobotSerialServo\LobotSerialServo.c - 4 - 487 - 488 + ..\HARDWARE\ANO\ano_protocol.c + 15 + 170 + 190 + 1 + + 0 + + + ..\SYSTEM\usart\usart4.c + 0 + 73 + 107 1 0 @@ -1402,33 +1420,42 @@ ..\HARDWARE\ANO\usartlink.c 43 - 89 - 118 + 141 + 159 1 0 - ..\HARDWARE\ANO\ano_protocol.c - 20 + tasks_entry.h + 0 1 - 1 + 22 1 0 - ..\HARDWARE\ANO\ano_protocol.h + ..\SYSTEM\usart\usart4.h 0 - 51 - 80 + 1 + 17 1 0 - ..\HARDWARE\LED\valve.h - 32 + ..\HARDWARE\ANO\ano_protocol.h + 50 + 52 + 85 + 1 + + 0 + + + ..\HARDWARE\ADC\adc.h + 54 1 12 1 @@ -1436,10 +1463,10 @@ 0 - ..\HARDWARE\LED\led.h - 0 - 1 - 16 + ..\LobotSerialServo\LobotSerialServo.h + 21 + 65 + 79 1 0 @@ -1447,8 +1474,4 @@ - - ..\HARDWARE\ANO\usartlink.c 109 - - diff --git a/USER/include.h b/USER/include.h index b4889225a2e391803db88b2e16654c02c17ea96e..616647c192a1d5b4943dea6984c4817b8b8bc9ad 100644 --- a/USER/include.h +++ b/USER/include.h @@ -12,6 +12,8 @@ #include "key.h" #include "beep.h" #include "exti.h" +#include "ano_protocol.h" +#include "usartlink.h" #include "timers.h" #include "iwdg.h" diff --git a/USER/main.c b/USER/main.c index 005eb28fe311d055d57d128b2e979e03093d20af..120384e80af97f4481d085f9b30d41c5a8aac8ec 100644 --- a/USER/main.c +++ b/USER/main.c @@ -30,6 +30,7 @@ int main() LED_Init(); KEY_Init(); Adc_Init(); + RX_Queue_init(); AirPress_LED_init(); valve_gpio_init(); TIM14_PWM_Init(10000-1,84-1); // ·ÖƵϵÊý84 µÃ1Mhz¼ÆÊýʱÖÓ 10000ÊýµÃ10msÖÜÆÚ @@ -65,7 +66,9 @@ void start_task(void * pvParameters) xTaskCreate(paxing_ctrl_task, "pax-tsk", 220, NULL, 7, NULL); - xTaskCreate(usart_tx_task, "Updata-tsk", 140, NULL, 12, NULL); + xTaskCreate(usart_tx_task, "Updata-tsk", 140, NULL, 12, NULL); + + xTaskCreate(packet_analy_task, "packet_analy_task", 150, NULL, 14, NULL); taskEXIT_CRITICAL(); //test_evgp = xEventGroupCreate(); diff --git a/USER/paxing_ctrl.c b/USER/paxing_ctrl.c index 7375bdcfc64c0150bf218f99ce7f1761695bf177..3033ce322b02986715cbb1e3063d5f4c0e69d41d 100755 --- a/USER/paxing_ctrl.c +++ b/USER/paxing_ctrl.c @@ -97,7 +97,7 @@ void doj_exe_helper(TimerHandle_t tmr) if(pos>0){ //LobotSerialServoMove(4,pos+55,400); taskENTER_CRITICAL(); - dojData[Idd2index(10)].target = pos-55; + dojData[Idd2index(10)].target = pos+55; dojData[Idd2index(10)].flag |= FLAG_WRITE_CMD; taskEXIT_CRITICAL(); } @@ -322,6 +322,8 @@ int give_pax_task_cmd(uint32_t dir, uint32_t step_num) }else if(2==dir){ cmds[0]=FLOAT_LEGS_BACK; cmds[1]=FIXED_LEGS_BACK; + }else if(4==dir||8==dir){ + cmds[0]=cmds[1]=dir; }else{ printf("ÃüÁî²ÎÊý·Ç·¨~!\r\n"); return 1; diff --git a/USER/tasks_entry.h b/USER/tasks_entry.h index 37ab1336ebb6d506995d641a8fcc96f83737829f..59dbe353e796c220fb80f4ca49e2190bee41f500 100755 --- a/USER/tasks_entry.h +++ b/USER/tasks_entry.h @@ -20,7 +20,7 @@ extern void paxing_ctrl_task(void* pp); // adcѹÁ¦Öµ·¢ËÍÉÏλ»úÈÎÎñÈë¿Úº¯Êý extern void usart_tx_task(void *param); - +extern void packet_analy_task(void *param); #endif