From 41776246aed24b42e1d05da230f6f114e02c87b6 Mon Sep 17 00:00:00 2001
From: guanjiao <sqrgj@163.com>
Date: 星期日, 27 五月 2018 17:39:52 +0800
Subject: [PATCH] 增加低通滤波与渐进报警功能

---
 源码/核心板/Src/main.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
index 366cc6f..1b51d04 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
@@ -6,9 +6,15 @@
 #include "beep.h"
 #include "dw_driver.h"
 #include "dw_app.h"
+#include "filters.h"
+#include "stm32f10x_it.h"
 
 //#define WORK_MODE_TAG
 #define WORK_MODE_ANCHOR
+#define START_ALARM_DIST_CM			500
+#define BEEM_ON_TIME_MS				200
+
+float dis_after_filter = 0;
 
 void Device_Init(void)
 {
@@ -35,9 +41,11 @@
  */
 int main(void)
 {
+	LPFilter_Frac* p_Dis_Filter;
 	
 	Device_Init();
 	Dw1000_Init();
+	p_Dis_Filter = New_LP_Frac(0.9);
 
     /* Loop forever initiating ranging exchanges. */
 	while(1)
@@ -48,13 +56,17 @@
 		Anchor_App();
 #endif
 		//除UWB之外的其他代码...
-		if(dist_cm<=100)
+		dis_after_filter = LP_Frac_Update(p_Dis_Filter, dist_cm);
+		
+		if(dis_after_filter <= START_ALARM_DIST_CM)
 		{
-			BEEP_ON; 
+			g_beep_off_time = (uint32_t)dis_after_filter * 10 - 1000;
+			g_beep_on_time = BEEM_ON_TIME_MS; 
 		}
 		else
 		{
-			BEEP_OFF;
+			g_beep_on_time = 0;
+			g_beep_off_time = 0;
 		}
 		
 	}

--
Gitblit v1.9.3