#include "beep_logic_app.h"
|
#include "led.h"
|
#include "beep.h"
|
#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
|
|
void main_logic(void) //Ö÷Âß¼ÔÚÕâÀïÖ´ÐÐ
|
{
|
static uint8_t beep_state,timer_state,beep_timer,beep_ontime,beep_offtime;
|
uint16_t i, min_dist;
|
//³ýUWBÖ®ÍâµÄÆäËû´úÂë...
|
static uint16_t beep_judge_cnt = 0;
|
if(beep_judge_cnt++ >= 100)
|
{
|
beep_judge_cnt = 0;
|
min_dist=0xffff;
|
for(i = 0; i < 255;i++)
|
{
|
if(g_Tagdist[i] < min_dist)
|
{
|
min_dist=g_Tagdist[i];
|
}
|
|
}
|
|
if(min_dist <= g_com_map[ALARM_DISTANCE1])
|
{
|
beep_ontime = ONTIME1;
|
beep_offtime = OFFTIME1;
|
beep_state=1;
|
|
}
|
// 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{
|
beep_state=0;
|
}
|
|
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;
|
}
|
}
|
}
|
}
|