| | |
| | | #define WARING_LIMIT_TIME 10 |
| | | #define UPDATE_TIME 10 |
| | | |
| | | |
| | | #define GREEN 1 |
| | | #define UP_TOWARD 2 |
| | | #define DOWN_TOWARD 3 |
| | | #define RED 4 |
| | | #define BRT 5 |
| | | #define SAVE 6 |
| | | #define STEP 7 |
| | | #define SCAN 8 |
| | | #define WIN 9 |
| | | #define TXP 10 |
| | | #define SFT_D 11 |
| | | #define O 12 |
| | | #define VOX 13 |
| | | #define SQL 14 |
| | | #define ROGER 15 |
| | | #define KEY 16 |
| | | extern uint8_t mUsartReceivePack[100]; |
| | | extern uint8_t mUsart2ReceivePack[150]; |
| | | extern uint8_t state5V_prase_flag,gps_prase_flag; |
| | |
| | | } |
| | | uint8_t link_error_time; |
| | | void SecondTask(void) |
| | | {static uint8_t second_count; |
| | | { |
| | | static uint8_t second_count; |
| | | if(second_count++>60) |
| | | { |
| | | second_count = 0; |
| | | MinuteTask(); |
| | | } |
| | | if(!power_low_flag) |
| | | {Gps_change(); |
| | | MotorPoll(); |
| | | }else{ |
| | | gps_power_state=0;//关闭GPS |
| | | update_led_power_state(); |
| | | //初始化GPS计数数据 |
| | | gps_need_data_flag=1; |
| | | gps_wait_count2=0; |
| | | gps_wait_count=0; |
| | | } |
| | | // if(!power_low_flag) |
| | | // {Gps_change(); |
| | | // MotorPoll(); |
| | | // }else{ |
| | | // gps_power_state=0;//关闭GPS |
| | | // update_led_power_state(); |
| | | // //初始化GPS计数数据 |
| | | // gps_need_data_flag=1; |
| | | // gps_wait_count2=0; |
| | | // gps_wait_count=0; |
| | | // } |
| | | |
| | | //UWB状态检测 |
| | | if(!power_low_flag)//低供电下不需要检测重连 |
| | | { |
| | | if(IfTCPConnected()) |
| | | { |
| | | // link_error_time=0; |
| | | TCP_reconnect_timer =0; |
| | | flag_TCP_reconnectting = 0; |
| | | } else { |
| | | if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 |
| | | { |
| | | flag_TCP_reconnectting = 1; |
| | | } else { |
| | | // //UWB状态检测 |
| | | //if(!power_low_flag)//低供电下不需要检测重连 |
| | | // { |
| | | // if(IfTCPConnected()) |
| | | // { |
| | | //// link_error_time=0; |
| | | // TCP_reconnect_timer =0; |
| | | //flag_TCP_reconnectting = 0; |
| | | sys_reset(4);//重连不上就复位 |
| | | } |
| | | if(TCP_reconnect_timer++>600) |
| | | { |
| | | TCP_reconnect_timer = 0; |
| | | } |
| | | // } else { |
| | | // if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 |
| | | // { |
| | | // flag_TCP_reconnectting = 1; |
| | | // } else { |
| | | // //flag_TCP_reconnectting = 0; |
| | | // sys_reset(4);//重连不上就复位 |
| | | // } |
| | | // if(TCP_reconnect_timer++>600) |
| | | // { |
| | | // TCP_reconnect_timer = 0; |
| | | // } |
| | | |
| | | } |
| | | } |
| | | HIDO_TimerTick(); |
| | | if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 |
| | | nomove_count++; |
| | | else{ |
| | | nomove_count=g_com_map[NOMOVESLEEP_TIME]+1; |
| | | } |
| | | // } |
| | | // } |
| | | // HIDO_TimerTick(); |
| | | // if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 |
| | | // nomove_count++; |
| | | // else{ |
| | | // nomove_count=g_com_map[NOMOVESLEEP_TIME]+1; |
| | | // } |
| | | } |
| | | uint8_t tt=1; |
| | | uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag; |
| | |
| | | } |
| | | |
| | | |
| | | uint8_t key_num; |
| | | void board_key_scan(uint8_t *key) |
| | | { |
| | | uint8_t key_down_flag=0; |
| | | //第一行拉低做检测 |
| | | gpio_pin_clr(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | if(!gpio_pin_get_val(COM1)||!gpio_pin_get_val(COM2)||!gpio_pin_get_val(COM3)||!gpio_pin_get_val(COM4)) |
| | | { |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=GREEN; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=UP_TOWARD; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=DOWN_TOWARD; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=RED; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | } |
| | | //第二行拉低做检测 |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_clr(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=BRT; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=SAVE; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=STEP; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=SCAN; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | } |
| | | |
| | | //第三行拉低做检测 |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_clr(CN3); |
| | | gpio_pin_set(CN4); |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=WIN; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=TXP; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=SFT_D; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=O; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | } |
| | | //第四行拉低做检测 |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_clr(CN4); |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=VOX; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=SQL; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=ROGER; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=KEY; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void board_key_message(uint8_t *key) |
| | | { |
| | | switch(*key){ |
| | | case 0: |
| | | |
| | | break; |
| | | case 1: |
| | | |
| | | break; |
| | | |
| | | case 2: |
| | | |
| | | break; |
| | | |
| | | case 3: |
| | | |
| | | break; |
| | | case 4: |
| | | |
| | | break; |
| | | case 5: |
| | | |
| | | break; |
| | | case 6: |
| | | |
| | | break; |
| | | case 7: |
| | | |
| | | break; |
| | | case 8: |
| | | |
| | | break; |
| | | case 9: |
| | | |
| | | break; |
| | | case 10: |
| | | |
| | | break; |
| | | case 11: |
| | | |
| | | break; |
| | | case 12: |
| | | |
| | | break; |
| | | case 13: |
| | | |
| | | break; |
| | | case 14: |
| | | |
| | | break; |
| | | case 15: |
| | | |
| | | break; |
| | | case 16: |
| | | |
| | | break; |
| | | } |
| | | |
| | | } |
| | | void IdleTask(void) |
| | | { |
| | | // if(gpio_pin_get_val(INPUT_5V_Pin)) |
| | |
| | | // //UartDeinit(); |
| | | // } |
| | | // } |
| | | board_key_scan(&key_num); |
| | | board_key_message(&key_num); |
| | | UART_CheckReceive(); |
| | | } |
| | | void boot_deinit(void) |
| | |
| | | .int_en = true, |
| | | .callback = app_wdt_callback, |
| | | }; |
| | | void board_key_scan(uint8_t *key) |
| | | { |
| | | uint8_t key_down_flag=0; |
| | | //第一行拉低做检测 |
| | | gpio_pin_clr(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | if(!gpio_pin_get_val(COM1)||!gpio_pin_get_val(COM2)||!gpio_pin_get_val(COM3)||!gpio_pin_get_val(COM4)) |
| | | { |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=1; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=2; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=3; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=4; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | |
| | | } |
| | | //第二行拉低做检测 |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_clr(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_set(CN4); |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=5; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=6; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=7; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=8; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | |
| | | } |
| | | |
| | | //第三行拉低做检测 |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_clr(CN3); |
| | | gpio_pin_set(CN4); |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=9; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=10; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=11; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=12; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | |
| | | } |
| | | //第四行拉低做检测 |
| | | gpio_pin_set(CN1); |
| | | gpio_pin_set(CN2); |
| | | gpio_pin_set(CN3); |
| | | gpio_pin_clr(CN4); |
| | | if(!gpio_pin_get_val(COM1)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=13; |
| | | while(!gpio_pin_get_val(COM1)); |
| | | }else if(!gpio_pin_get_val(COM2)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=14; |
| | | while(!gpio_pin_get_val(COM2)); |
| | | }else if (!gpio_pin_get_val(COM3)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=15; |
| | | while(!gpio_pin_get_val(COM3)); |
| | | }else if (!gpio_pin_get_val(COM4)) |
| | | { |
| | | key_down_flag=1; |
| | | *key=16; |
| | | while(!gpio_pin_get_val(COM4)); |
| | | }else{ |
| | | key_down_flag=0; |
| | | |
| | | } |
| | | } |
| | | } |
| | | int main(void) |
| | | { |
| | | board_clock_run(); |
| | |
| | | |
| | | // adc_open(&usr_adc_cfg); |
| | | board_gpio_init(); |
| | | key_board_init(); |
| | | // IIC2_Init(); |
| | | // Accelerometer_Init(); |
| | | // io_pin_mux_set(SCL_PIN, IO_FUNC0);//测试测距波形 |
| | |
| | | |
| | | while (1) |
| | | { |
| | | |
| | | // if(!power_low_flag)//确认是否休眠下才开启功能 |
| | | // { |
| | | // if(flag_TCP_reconnectting||IfTCPConnected()) |