From 815ea18d897111c4bf70861277acf94201ccf60a Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期五, 14 十月 2022 16:25:59 +0800 Subject: [PATCH] V1.72 增加滤波器 增加频率可调 --- 源码/核心板/Src/application/dw_app.c | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" index efe02fb..72fcfc2 100644 --- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" +++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" @@ -319,6 +319,7 @@ u8 exsistbase_list[MAX_NEARBASE_NUM],report_num,get_newbase=0,rec_extratag_battary; u16 temp_sync_timer1,temp_sync_timer2,rec_extratag_id,success_ancid; int32_t rec_extratag_dist; +uint8_t usart_send_array[5][21],usart_array_num; void NearPoll(void) { static u8 mainbase_lost_count=0,flag_finalsend,flag_rxon; @@ -494,7 +495,8 @@ usart_send[14] = button; checksum = Checksum_u16(&usart_send[2],17); memcpy(&usart_send[19],&checksum,2); - UART_PushFrame(usart_send,21); + //UART_PushFrame(usart_send,21); + memcpy(&usart_send_array[usart_array_num++],usart_send,21); usartoutput_count++; #endif @@ -511,7 +513,8 @@ usart_send[14] = button; checksum = Checksum_u16(&usart_send[2],17); memcpy(&usart_send[19],&checksum,2); - UART_PushFrame(usart_send,21); + memcpy(&usart_send_array[usart_array_num++],usart_send,21); + //UART_PushFrame(usart_send,21); #endif } } @@ -566,7 +569,8 @@ usart_send[14] = button; checksum = Checksum_u16(&usart_send[2],17); memcpy(&usart_send[19],&checksum,2); - UART_PushFrame(usart_send,21); + //UART_PushFrame(usart_send,21); + memcpy(&usart_send_array[usart_array_num++],usart_send,21); usartoutput_count++; #endif @@ -593,7 +597,8 @@ usart_send[14] = button; checksum = Checksum_u16(&usart_send[2],17); memcpy(&usart_send[19],&checksum,2); - UART_PushFrame(usart_send,21); + memcpy(&usart_send_array[usart_array_num++],usart_send,21); + //UART_PushFrame(usart_send,21); #endif } } @@ -934,6 +939,7 @@ u8 misdist_num[TAG_NUM_IN_SYS],seize_anchor,getrange_success=0; int32_t filter_dist,filter_speed; u8 newmeasure,recpoll_len; +float fiter_p; u8 Anchor_RecNearPoll(u8 ancrec_nearbasepos) //0 mainbase 1 first near_base { u8 motorstate; @@ -1074,7 +1080,12 @@ //filter_speed = vel_predict[taglist_pos]; newmeasure = 1; #else - filter_dist=hex_dist/10; + if(tagdist_list[taglist_pos]>0&&tagdist_list[taglist_pos]<50000) + { + filter_dist=(hex_dist/10)*fiter_p+(1-fiter_p)*tagdist_list[taglist_pos]; + }else{ + filter_dist = hex_dist/10; + } #endif misdist_num[taglist_pos]=0; tagdist_list[taglist_pos] = filter_dist; -- Gitblit v1.9.3