| | |
| | | #define TEST_UART_MODE TEST_UART_DMA_MODE |
| | | |
| | | #define NUM_SAMPLES 1 |
| | | #define SLEEP_START_TIME 1 |
| | | #define SLEEP_START_TIME 10 |
| | | #define FREQ_LOST_TIME 5 |
| | | #define NOTAG_FREQ 1 |
| | | #define BATTERY_GET_TIME 3600 |
| | |
| | | .callback = app_wdt_callback, |
| | | }; |
| | | |
| | | uint8_t state5v = 1; |
| | | uint8_t state5v = 0; |
| | | uint8_t bat_percent=0,g_start_send_flag=1; |
| | | int16_t fVoltage_mv; |
| | | uint8_t bat_percent; |
| | |
| | | void boot_deinit(void); |
| | | void Get_batterty_Voltage(void); |
| | | void Calculate_battery_percent(void); |
| | | uint8_t sleep_limit_time=10; |
| | | static void uart_receive_callback(void *dev, uint32_t err_code) |
| | | { |
| | | uart_receive(UART_ID0,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); |
| | |
| | | uart_close(UART_ID0); |
| | | uart_close(UART_ID1); |
| | | } |
| | | uint8_t bat_flag; |
| | | void Get_batterty_Voltage(void) |
| | | { |
| | | battery_monitor_open(); |
| | | fVoltage_mv=battery_monitor_get(); |
| | | battery_monitor_close(); |
| | | Calculate_battery_percent(); |
| | | if(fVoltage_mv>=3200&&fVoltage_mv<=3400) |
| | | { |
| | | bat_flag=1;//正常 |
| | | }else{ |
| | | bat_flag=0;//不正常 |
| | | } |
| | | //Calculate_battery_percent(); |
| | | } |
| | | void Calculate_battery_percent(void) |
| | | { |
| | |
| | | { |
| | | bat_percent = ((fVoltage_mv - 3000) /8); |
| | | } |
| | | |
| | | //LOG_INFO(TRACE_MODULE_APP, "The voltage is %d ,percent is %%%d \r\n",fVoltage_mv,bat_percent); |
| | | } |
| | | static void sleep_timer_callback(void *dev, uint32_t time) |
| | |
| | | if(reboot_num>=3600) |
| | | NVIC_SystemReset(); //软复位回到bootloader |
| | | enable_sleep_count++; |
| | | if(enable_sleep_count==SLEEP_START_TIME){ |
| | | |
| | | |
| | | if(enable_sleep_count==sleep_limit_time){ |
| | | enable_sleep_count=0; |
| | | sleep_flag=1; |
| | | } |
| | |
| | | group_id=g_com_map[GROUP_ID]; |
| | | memcpy(&dev_id ,&g_com_map[DEV_ID],2); |
| | | tag_frequency=1000/g_com_map[COM_INTERVAL]; |
| | | g_com_map[VERSION] = (1<<8)|11; |
| | | g_com_map[VERSION] = (1<<8)|12; |
| | | LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); |
| | | LOG_INFO(TRACE_MODULE_APP,"固件版本:UWB-免布线信标 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); |
| | | } |
| | | uint8_t test1; |
| | | extern uint8_t change_power_flag; |
| | | void IdleTask(void) |
| | | { UART0_CheckReceive(); |
| | | test1=gpio_pin_get_val(INPUT_5V_Pin); |
| | | if(gpio_pin_get_val(INPUT_5V_Pin)) |
| | | { |
| | | |
| | | |
| | | //UART_CheckSend(); |
| | | // bat_percent=Get_Battary(); |
| | | if(state5v==0) |
| | | { |
| | | state5v=1; |
| | | sleep_flag=0; |
| | | sleep_limit_time=30;//新增插入串口后30s不休眠 |
| | | enable_sleep_count=0;//重新插拔可以重置时间 |
| | | } |
| | | }else{ |
| | | if(state5v==1) |
| | |
| | | uart_close(UART_ID1);//解绑原来串口1 |
| | | uart_close(UART_ID0);//解绑原来串口0 |
| | | } |
| | | void power_mode_start(void) |
| | | { |
| | | LED_PA_change();//将PA管脚改为gpio模式发射载波开启功率测试 |
| | | |
| | | } |
| | | |
| | | int main(void) |
| | | { |
| | | board_clock_run(); |
| | |
| | | #endif |
| | | //Serial0_PutString("进入app测试\r\n"); |
| | | while (1) |
| | | { wdt_ping(WDT_ID0);//喂狗 |
| | | { |
| | | if(g_start_send_flag) |
| | | { |
| | | //LOG_INFO(TRACE_MODULE_APP, "测距ing"); |
| | | |
| | | wdt_ping(WDT_ID0);//喂狗 |
| | | g_start_send_flag = 0; |
| | | gpio_pin_set(LED_PIN);//亮 |
| | | if(!change_power_flag) |
| | | TagRange(); |
| | | if(change_power_flag) |
| | | { |
| | | power_mode_start(); |
| | | uwb_power_init(); |
| | | } |
| | | gpio_pin_clr(LED_PIN);//灭 |
| | | IdleTask(); |
| | | }else{ |