From 65b24351ebb9e910ce58caa59799241588378746 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期日, 27 四月 2025 10:55:50 +0800 Subject: [PATCH] UWB常开版本,跟老版本免布线基站测距,功耗130ma, --- keil/include/main/main.c | 62 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 1 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 66bbcb6..476ccbe 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -40,6 +40,10 @@ #define UPDATE_TIME 10 +#define UWB_OPEN_COUNT 1 +#define UWB_MEASUREMENT_INTERVAL 3 +#define UWB_MEASUREMENT_INTERVAL_SLEEP 60 + extern uint8_t mUsartReceivePack[100]; extern uint8_t mUsart2ReceivePack[150]; extern uint8_t state5V_prase_flag,gps_prase_flag; @@ -71,8 +75,20 @@ LINK_SUCCESS, SEARCH_DEV, } Operation_step; -Operation_step UWB_work_state; +Operation_step UWB_work_state; +// 定义状态 +typedef enum { + STATE_NORMAL, // 正常状态,3秒测距上传一次 + STATE_SLEEP // 休眠状态,1分钟测距上传一次 +} CountState_t; + +uint32_t uwb_time_count = 0; // 定时器计数值 +//uint32_t step_count = 0; // 步数计数 +//uint32_t last_step_count = 0; // 上一次步数 + +CountState_t current_state = STATE_NORMAL; // 当前状态 +uint32_t state_start_time = 0; // 状态开始时间 Commend_SendDate send_struct; struct ADC_CFG_T usr_adc_cfg = { @@ -571,6 +587,49 @@ uart_close(UART_ID0);//解绑原来串口0 } +extern uint32_t uwb_time_count; +void upload_apppoll() +{ + uint32_t elapsed_time_jibu; + + switch (current_state) + { + case STATE_NORMAL: + elapsed_time_jibu = uwb_time_count - state_start_time; + switch(elapsed_time_jibu) + { + case UWB_OPEN_COUNT: + + CloseUWB(); + break; + + case UWB_MEASUREMENT_INTERVAL: + OpenUWB(); + state_start_time = uwb_time_count; + break; + } + break; + + case STATE_SLEEP: + elapsed_time_jibu = uwb_time_count - state_start_time; + switch(elapsed_time_jibu) + { + case UWB_OPEN_COUNT: + + CloseUWB(); + break; + + case UWB_MEASUREMENT_INTERVAL_SLEEP: + + OpenUWB(); + state_start_time = uwb_time_count; + break; + } + break; + } + +} + uint8_t flag_4guart_needinit=0; uint8_t index1,index2,index3; int16_t Voltage_input; @@ -580,6 +639,7 @@ extern uint8_t receive_flag; int main(void) { + __enable_irq(); board_clock_run(); boot_deinit(); board_pins_config(); -- Gitblit v1.9.3