源码/核心板/Src/OnChipDevices/Rcc_Nvic_Systick.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/beep_logic_app.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/beep_logic_app.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/dw_app.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/dw_app.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/global_param.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/application/global_param.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/main.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/stm32f10x_it.c | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
源码/核心板/Src/stm32f10x_it.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Ô´Âë/ºËÐİå/Src/OnChipDevices/Rcc_Nvic_Systick.c
@@ -59,7 +59,7 @@ int Systick_Init(void) { int time_retry = 500; if (SysTick_Config(64000)) if (SysTick_Config(72000)) { /* Capture error */ while (time_retry--); Ô´Âë/ºËÐİå/Src/application/beep_logic_app.c
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,66 @@ #include "beep_logic_app.h" #include "led.h" #include "beep.h" #include "global_param.h" #include "dw_app.h" void main_logic(void) //主é»è¾å¨è¿éæ§è¡ { //é¤UWBä¹å¤çå ¶ä»ä»£ç ... static uint16_t beep_judge_cnt = 0; if(beep_judge_cnt++ >= 200) { beep_judge_cnt = 0; if(dis_after_filter <= g_com_map[ALARM_DISTANCE]) { 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 { 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; } } } } Ô´Âë/ºËÐİå/Src/application/beep_logic_app.h
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ #ifndef __BEEP_LOGIC_H__ #define __BEEP_LOGIC_H__ #include "stm32f10x.h" void main_logic(void); //主é»è¾å¨è¿éæ§è¡ #endif Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -28,6 +28,8 @@ #include "led.h" #include "serial_at_cmd_app.h" #include "Usart.h" #include "global_param.h" #include "filters.h" /*------------------------------------ Marcos ------------------------------------------*/ @@ -129,6 +131,10 @@ uint8_t random_delay_tim = 0; double distance, dist_no_bias, dist_cm; uint32_t g_UWB_com_interval = 0; float dis_after_filter; //å½åè·ç¦»å¼ LPFilter_Frac* p_Dis_Filter; //æµè·ç¨çä½éæ»¤æ³¢å¨ /*------------------------------------ Functions ------------------------------------------*/ @@ -435,7 +441,10 @@ dist_cm = dist_no_bias * 100; //dis 为åä½ä¸ºcmçè·ç¦» // dist[TAG_ID] = LP(dis, TAG_ID); //LP 为ä½é滤波å¨ï¼è®©æ°æ®æ´ç¨³å® /*--------------------------以ä¸ä¸ºéæµè·é»è¾------------------------*/ LED0_BLINK; //æ¯æå䏿¬¡é讯åéªç䏿¬¡ g_UWB_com_interval = 0; dis_after_filter = LP_Frac_Update(p_Dis_Filter, dist_cm); } } Ô´Âë/ºËÐİå/Src/application/dw_app.h
@@ -3,11 +3,15 @@ #define __DW_APP_H__ #include "stm32f10x.h" #include "filters.h" #define TAG_NUM_IN_SYS 256 #define DFT_RAND_DLY_TIM_MS 1 extern double dist_cm; extern uint32_t g_UWB_com_interval; extern float dis_after_filter; extern LPFilter_Frac* p_Dis_Filter; //æµè·ç¨çä½éæ»¤æ³¢å¨ void Dw1000_Init(void); void Tag_App(void); Ô´Âë/ºËÐİå/Src/application/global_param.c
@@ -1,7 +1,9 @@ #include "global_param.h" #include "Flash.h" #include "dw_app.h" uint16_t g_com_map[COM_MAP_SIZE]; uint32_t save_com_map_to_flash(void) { @@ -21,6 +23,9 @@ g_com_map[ALARM_DISTANCE] = 200; //é»è®¤æ¥è¦è·ç¦»200cm g_com_map[ALARM_DEV] = 0; dis_after_filter = 1000; //é»è®¤è·ç¦» p_Dis_Filter = New_LP_Frac(0.7); } Ô´Âë/ºËÐİå/Src/application/global_param.h
@@ -3,8 +3,8 @@ #include "stm32f10x.h" #define COM_MAP_SIZE 1024 #define COM_MAP_SIZE 1024 //MAP表çæå¤§ç©ºé´ #define DEFAULT_DISTANCE 1000 //åå§æµè·è·ç¦»ä¸º10ç±³ /*---------------Map Definition-------------------*/ #define DEV_ROLE 0x10 //è¯¥è®¾å¤æ¯anchorè¿æ¯tag @@ -17,8 +17,8 @@ /*------------END Map Definition-------------------*/ extern uint16_t g_com_map[COM_MAP_SIZE]; extern uint16_t g_com_map[COM_MAP_SIZE]; extern uint32_t save_com_map_to_flash(void); extern void parameter_init(void); Ô´Âë/ºËÐİå/Src/main.c
@@ -6,17 +6,12 @@ #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) { @@ -51,12 +46,10 @@ */ 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) @@ -65,66 +58,7 @@ 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; } } } } Ô´Âë/ºËÐİå/Src/stm32f10x_it.c
@@ -23,32 +23,24 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32f10x_it.h" #include "stm32f10x.h" #include "beep.h" #include "dw_app.h" #include "global_param.h" #include "beep_logic_app.h" /* Tick timer count. */ volatile uint32_t time32_incr; volatile uint32_t g_beep_on_time = 0; volatile uint32_t g_beep_off_time = 0; void SysTick_Handler(void) { static uint32_t s_cycle_time = 0; time32_incr++; g_UWB_com_interval++; if(g_UWB_com_interval > 1000) { dis_after_filter = DEFAULT_DISTANCE; } main_logic(); // if(s_cycle_time >= g_beep_off_time) // { // s_cycle_time = 0; // } // else if(s_cycle_time > g_beep_on_time && s_cycle_time < g_beep_off_time) // { // BEEP_OFF; // } // else if(s_cycle_time <= g_beep_on_time) // { // BEEP_ON; // } s_cycle_time++; } /** Ô´Âë/ºËÐİå/Src/stm32f10x_it.h
@@ -27,10 +27,6 @@ #ifdef __cplusplus extern "C" { #endif extern volatile uint32_t g_beep_on_time; extern volatile uint32_t g_beep_off_time; /* * Tick timer interrupt handler to replace the default one.