From f77c0cc249fd31530fb90cdfb19093695553d0bc Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期二, 27 四月 2021 21:55:34 +0800 Subject: [PATCH] V2.18 基本没问题 --- 源码/核心板/Src/application/beep_logic_app.c | 108 ++++++++++++++--------------------------------------- 1 files changed, 29 insertions(+), 79 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 74c8075..1fd5085 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" @@ -8,15 +8,16 @@ #define OFFTIME1 0 // 100ms #define ONTIME2 1 // 100ms -#define OFFTIME2 1 // 100ms +#define OFFTIME2 0 // 100ms -#define ONTIME3 1 // 500ms +#define ONTIME3 5 // 500ms #define OFFTIME3 5 // 500ms - +u8 distoffset1=0,distoffset2=0; +uint16_t min_dist; void main_logic(void) //主逻辑在这里执行 { static uint8_t beep_state,timer_state,beep_timer,beep_ontime,beep_offtime; - uint16_t i, min_dist; + uint16_t i; //除UWB之外的其他代码... static uint16_t beep_judge_cnt = 0; if(beep_judge_cnt++ >= 100) @@ -25,64 +26,43 @@ min_dist=0xffff; for(i = 0; i < 255;i++) { - if(g_Tagdist[i] < min_dist) + if(g_Tagdist[i] < min_dist&&g_Tagdist[i]>g_com_map[ALARM_DISTANCE1]) { min_dist=g_Tagdist[i]; } } - if(min_dist <= g_com_map[ALARM_DISTANCE1]) + if (min_dist <= g_com_map[ALARM_DISTANCE2]+distoffset1) { - beep_ontime = ONTIME1; - beep_offtime = OFFTIME1; - beep_state=1; - + beep_ontime = ONTIME2; + beep_offtime = OFFTIME2; + beep_state=2; + distoffset1=0; + distoffset2=0; } -// else if (min_dist <= g_com_map[ALARM_DISTANCE2]) -// { -// beep_ontime = ONTIME2; -// beep_offtime = OFFTIME2; -// beep_state=1; -// }else if (min_dist <= g_com_map[ALARM_DISTANCE3]) -// { -// beep_ontime = ONTIME3; -// beep_offtime = OFFTIME3; -// beep_state=1; -// } + else if (min_dist <= g_com_map[ALARM_DISTANCE3]+distoffset2) + { + beep_ontime = ONTIME3; + beep_offtime = OFFTIME3; + beep_state=1; + distoffset1=0; + distoffset2=0; + } else{ beep_state=0; + distoffset1=0; + distoffset2=0; } - if(beep_state==1) + if(beep_state!=0) { 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; - } + RELAY1_ON; + RELAY2_ON; }else{ timer_state=0; beep_timer=0; @@ -90,23 +70,8 @@ }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; - } + RELAY1_OFF; + RELAY2_OFF; }else{ timer_state=1; beep_timer=0; @@ -115,23 +80,8 @@ } } 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; - } + RELAY1_OFF; + RELAY2_OFF; } } } -- Gitblit v1.9.3