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 | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 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 b9fae62..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,6 +56,18 @@ Anchor_App(); #endif //除UWB之外的其他代码... + dis_after_filter = LP_Frac_Update(p_Dis_Filter, dist_cm); + + if(dis_after_filter <= START_ALARM_DIST_CM) + { + g_beep_off_time = (uint32_t)dis_after_filter * 10 - 1000; + g_beep_on_time = BEEM_ON_TIME_MS; + } + else + { + g_beep_on_time = 0; + g_beep_off_time = 0; + } } } -- Gitblit v1.9.3