#include "Rcc_Nvic_Systick.h" #include "Usart.h" #include "Spi.h" #include "led.h" #include "beep.h" #include "dw_driver.h" #include "dw_app.h" #include "filters.h" #include "stm32f10x_it.h" #include "serial_at_cmd_app.h" #include "global_param.h" //#define WORK_MODE_TAG #define WORK_MODE_ANCHOR #define START_ALARM_DIST_CM 200 #define BEEM_ON_TIME_MS 200 float dis_after_filter = 500; void Device_Init(void) { // Rcc_Init(); SystemInit(); Nvic_Init(); Systick_Init(); Led_Init(); Beep_Init(); DW_GPIO_Init(); Uart1_Init(); Spi_Init(); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); } void Program_Init(void) { Usart1ParseDataCallback = UsartParseDataHandler; parameter_init(); } /*! ------------------------------------------------------------------------------------------------------------------ * @fn main() * * @brief Application entry point. * * @param none * * @return none */ int main(void) { LPFilter_Frac* p_Dis_Filter; Device_Init(); Program_Init(); Dw1000_Init(); p_Dis_Filter = New_LP_Frac(0.7); /* Loop forever initiating ranging exchanges. */ while(1) { #ifdef WORK_MODE_TAG Tag_App(); #else Anchor_App(); #endif //³ýUWBÖ®ÍâµÄÆäËû´úÂë... dis_after_filter = LP_Frac_Update(p_Dis_Filter, dist_cm); if(dis_after_filter <= g_com_map[ALARM_DISTANCE]) { // g_beep_off_time = (uint32_t)dis_after_filter * 10; // if(g_beep_off_time <= 0) // g_beep_off_time = 0; // g_beep_on_time = BEEM_ON_TIME_MS; 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 { // g_beep_on_time = 0; // g_beep_off_time = 0; 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; } } } }