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