| | |
| | | extern uint8_t anchordata_num; |
| | | uint32_t dev_id; |
| | | uint8_t group_id; |
| | | uint16_t tag_frequency; |
| | | uint8_t tag_frequency; |
| | | uint16_t disoffset; |
| | | uint16_t warning_distance,prewarning_distance; |
| | | int16_t fVoltage_mv,first_search_flag; |
| | |
| | | uint16_t gps_wait_count,gps_wait_count2; |
| | | uint8_t state5v = 1; |
| | | uint8_t motor_power_state=1,uwb_state,air780_power_state,gps_success_state,red_charge_state,green_charge_state,air780_success_state,first_motor_in_flag; |
| | | float nomove_count=0; |
| | | uint16_t nomove_count=0; |
| | | static uint32_t sample[NUM_SAMPLES] = {0}; |
| | | uint8_t recev_error_num,send_messgae_count,send_flag,control_state,power_low_flag; |
| | | uint8_t flag_4g_usart_rx_state = 1; //4G 串口RX当前是 RX状态,不是GPIO状态 |
| | |
| | | } |
| | | void MinuteTask(void) |
| | | { |
| | | PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 |
| | | // PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 |
| | | adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 |
| | | } |
| | | extern uint8_t motor_state; |
| | | extern int8_t motor_keeptime; |
| | | void SecondTask(void) |
| | | {static uint8_t second_count; |
| | | if(second_count++>60) |
| | |
| | | MinuteTask(); |
| | | } |
| | | |
| | | // if(!power_low_flag) |
| | | // Gps_change(); |
| | | // 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()) |
| | | // { |
| | | // TCP_reconnect_timer =0; |
| | | // flag_TCP_reconnectting = 0; |
| | | // } else { |
| | | // if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 |
| | | // { |
| | | // flag_TCP_reconnectting = 1; |
| | | // } else { |
| | | // flag_TCP_reconnectting = 0; |
| | | // } |
| | | // if(TCP_reconnect_timer++>600) |
| | | // { |
| | | // TCP_reconnect_timer = 0; |
| | | // } |
| | | |
| | | // } |
| | | // } |
| | | if(g_com_map[MOTOR_ENABLE]) |
| | | { |
| | | if(motor_keeptime-->0) |
| | | { |
| | | motor_state = 2; |
| | | }else{ |
| | | motor_state = 0; |
| | | } |
| | | switch(motor_state) |
| | | {case 0: |
| | | pwm_ch_disable(PWM_ID3); |
| | | break; |
| | | case 1: |
| | | break; |
| | | case 2: |
| | | pwm_ch_enable(PWM_ID3, &usr_pwm_ch0_cfg); |
| | | break; |
| | | case 3: |
| | | break; |
| | | } |
| | | } |
| | | HIDO_TimerTick(); |
| | | if(motor_keeptime<0) |
| | | { |
| | | motor_keeptime=-1;//防止溢出 |
| | | } |
| | | 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 tt=1; |
| | | uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag; |
| | | uint8_t uwb_enable_flag=0; |
| | | |
| | |
| | | LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); |
| | | LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port); |
| | | } |
| | | extern uint8_t motor_state; |
| | | extern float motor_keeptime; |
| | | |
| | | uint8_t test1; |
| | | void IdleTask(void) |
| | | { |
| | | if(g_com_map[MOTOR_ENABLE]) |
| | | { |
| | | if(motor_keeptime>0) |
| | | { |
| | | motor_state = 2; |
| | | }else{ |
| | | motor_state = 0; |
| | | } |
| | | //motor_state=2; |
| | | switch(motor_state) |
| | | {case 0: |
| | | // if(hardware_type==NSH1) |
| | | // {MOTOR_OFF; |
| | | // }else if(hardware_type==GP) |
| | | // { |
| | | // HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_3); |
| | | // } |
| | | // pwm_ch_enable(PWM_ID0, &usr_pwm_ch0_cfg); |
| | | // delay_ms(10000); |
| | | pwm_ch_disable(PWM_ID3); |
| | | break; |
| | | case 1: |
| | | // if(current_time<MOTOR_ONTIME) |
| | | // { |
| | | // if(hardware_type==NSH1) |
| | | // {MOTOR_ON; |
| | | // }else if(hardware_type==GP) |
| | | // { |
| | | // HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3); |
| | | // } |
| | | // }else{ |
| | | // if(hardware_type==NSH1) |
| | | // {MOTOR_OFF; |
| | | // }else if(hardware_type==GP) |
| | | // { |
| | | // HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_3); |
| | | // } |
| | | // } |
| | | // pwm_ch_enable(PWM_ID0, &usr_pwm_ch0_cfg); |
| | | break; |
| | | case 2: |
| | | // if(hardware_type==NSH1) |
| | | // {MOTOR_ON; |
| | | // }else if(hardware_type==GP) |
| | | // { |
| | | // HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3); |
| | | // } |
| | | pwm_ch_enable(PWM_ID3, &usr_pwm_ch0_cfg); |
| | | break; |
| | | case 3: |
| | | // if(hardware_type==NSH1) |
| | | // {MOTOR_OFF; |
| | | // }else if(hardware_type==GP) |
| | | // { |
| | | // HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_3); |
| | | // } |
| | | break; |
| | | } |
| | | } |
| | | |
| | | UART0_CheckReceive(); |
| | | test1=gpio_pin_get_val(INPUT_5V_Pin); |
| | | if(gpio_pin_get_val(INPUT_5V_Pin)) |
| | |
| | | IIC2_Init(); |
| | | SC7A22H_Motion_Detection_Init(); |
| | | gpio_pin_clr(ADC_GND_ENABLE); |
| | | Program_Init(); |
| | | //Program_Init(); |
| | | uart_receive(UART_ID0,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); |
| | | power_init(); |
| | | sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback); |
| | |
| | | board_5V_input_init(voltage_input_handler); |
| | | adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 |
| | | board_acceleration_detection_init(move_handler); |
| | | Uwb_init(); |
| | | Dw1000_App_Init(); |
| | | Tag_uwb_init(); |
| | | // Dw1000_App_Init(); |
| | | while (1) |
| | | { |
| | | if(flag_secondtask) |
| | |
| | | { |
| | | g_start_send_flag = 0; |
| | | gpio_pin_set(IO_PIN_7);//亮 |
| | | SwitchTagState(); |
| | | TagRange(); |
| | | gpio_pin_clr(IO_PIN_7);//灭 |
| | | } |
| | | // PowerTask(); |
| | | IMUTask(); |
| | | //IMUTask(); |
| | | // UserKeyTask(); |
| | | IdleTask(); |
| | | LoraUp_Poll(); |