From 89fd0aa609f215a33731e8babbef13e97fff27c3 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期二, 12 十月 2021 17:31:56 +0800 Subject: [PATCH] 超级小组汇总模式V1.45 --- 源码/核心板/Src/application/beep_logic_app.c | 175 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 132 insertions(+), 43 deletions(-) diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/beep_logic_app.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/beep_logic_app.c" index d93e96f..3e82a67 100644 --- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/beep_logic_app.c" +++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/beep_logic_app.c" @@ -4,60 +4,149 @@ #include "global_param.h" #include "dw_app.h" +#define ONTIME1 1 // 100ms +#define OFFTIME1 0 // 100ms + +#define ONTIME2 1 // 100ms +#define OFFTIME2 1 // 100ms + +#define ONTIME3 1 // 500ms +#define OFFTIME3 5 // 500ms +int32_t min_dist; void main_logic(void) //主逻辑在这里执行 { + static uint8_t beep_state,timer_state,beep_timer,beep_ontime,beep_offtime; + int16_t i; //除UWB之外的其他代码... static uint16_t beep_judge_cnt = 0; - if(beep_judge_cnt++ >= 200) + if(beep_judge_cnt++ >= 100) { beep_judge_cnt = 0; + min_dist=0x7fffff; + for(i = 0; i < 255;i++) + { + if(g_Tagdist[i] < min_dist) + { + min_dist=g_Tagdist[i]; + } + + } - if(dis_after_filter <= g_com_map[ALARM_DISTANCE]) + if(min_dist <= g_com_map[ALARM_DISTANCE1]) { - switch(g_com_map[ALARM_DEV]) - { - case 0: - BEEP2_ON; - BEEP_OFF; - OUT2_OFF; - break; - case 1: - BEEP_ON; - BEEP2_OFF; - OUT2_OFF; - break; - case 2: - OUT2_ON; - BEEP_OFF; - BEEP2_OFF; - break; - default: - BEEP2_ON; - BEEP_ON; - OUT2_ON; - break; - } + beep_ontime = ONTIME1; + beep_offtime = OFFTIME1; + beep_state=1; + RELAY1_ON; + RELAY2_ON; + } - else + else if (min_dist <= g_com_map[ALARM_DISTANCE2]) { - switch(g_com_map[ALARM_DEV]) - { - case 0: - BEEP2_OFF; - break; - case 1: - BEEP_OFF; - break; - case 2: - OUT2_OFF; - break; - default: - BEEP2_OFF; - BEEP_OFF; - OUT2_OFF; - break; - } + beep_ontime = ONTIME2; + beep_offtime = OFFTIME2; + beep_state=1; + RELAY2_ON; } + //else if (min_dist <= g_com_map[ALARM_DISTANCE3]) +// { +// beep_ontime = ONTIME3; +// beep_offtime = OFFTIME3; +// beep_state=1; +// } + else{ + beep_state=0; + } + if (min_dist >= g_com_map[ALARM_DISTANCE1]+20) + { + RELAY1_OFF; + } + + if (min_dist >= g_com_map[ALARM_DISTANCE2]+20) + { + RELAY2_OFF; + } + +// +// if(beep_state==1) +// { +// if(timer_state==1) +// { +// if(beep_timer++ < beep_ontime) +// { +// switch(g_com_map[ALARM_DEV]) +// { +// case 0: +// BEEP2_ON; +// BEEP_OFF; +// OUT2_OFF; +// break; +// case 1: +// BEEP_ON; +// BEEP2_OFF; +// OUT2_OFF; +// break; +// case 2: +// OUT2_ON; +// BEEP_OFF; +// BEEP2_OFF; +// break; +// default: +// BEEP2_ON; +// BEEP_ON; +// OUT2_ON; +// break; +// } +// }else{ +// timer_state=0; +// beep_timer=0; +// } +// }else{ +// if(beep_timer++ < beep_offtime) +// { +// switch(g_com_map[ALARM_DEV]) +// { +// case 0: +// BEEP2_OFF; +// break; +// case 1: +// BEEP_OFF; +// break; +// case 2: +// OUT2_OFF; +// break; +// default: +// BEEP2_OFF; +// BEEP_OFF; +// OUT2_OFF; +// break; +// } +// }else{ +// timer_state=1; +// beep_timer=0; +// } +// +// } +// +// } else { +// switch(g_com_map[ALARM_DEV]) +// { +// case 0: +// BEEP2_OFF; +// break; +// case 1: +// BEEP_OFF; +// break; +// case 2: +// OUT2_OFF; +// break; +// default: +// BEEP2_OFF; +// BEEP_OFF; +// OUT2_OFF; +// break; +// } +// } } } -- Gitblit v1.9.3