| | |
| | | uint8_t onlyoneflag=1; |
| | | void mcu_deep_sleep(void) |
| | | { |
| | | |
| | | // char str[19]= {"AT+POWERMODE=ST\r\n"}; |
| | | uint32_t lock; |
| | | // uart_send(UART_ID0, str,19, NULL); |
| | | trace_flush(); |
| | | lock = int_lock(); |
| | | // LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); |
| | | // gps_air780_power_change(0,0);//关闭gps,4G |
| | | PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED |
| | | PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G |
| | | PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps |
| | | // PCA9555_Set_One_Value_Output(TTS_ENABLE,0); |
| | | |
| | | |
| | | PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G |
| | | |
| | | sleep_timer_stop(); |
| | | // gpio_pin_get_val(PCA_INPUT_DETECT); |
| | | // PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G AT+CPOWD |
| | | |
| | | sleep_timer_stop(); |
| | | // delay_ms(1); |
| | | if(!gpio_pin_get_val(PCA_INPUT_DETECT)) |
| | | { |
| | | return; |
| | | } |
| | | //adc_close(); |
| | | power_enter_power_down_mode(1); |
| | | |
| | | // LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); |
| | | sys_reset(0); |
| | | int_unlock(lock); |
| | |
| | | uint32_t keystarttime,keystarttime2,keystarttime3; |
| | | extern uint32_t get_in_num,get_out_num; |
| | | uint8_t flag_4G_recdata; |
| | | uint8_t ledonflag; |
| | | uint8_t ledonflag,_4gclose_flag; |
| | | uint32_t ledontime; |
| | | extern uint8_t flag_first_TCPconnect; |
| | | void IMUTask(void) |
| | |
| | | userkey_state=4; |
| | | heartbeasend_flag = 1; |
| | | sleepflag=1; |
| | | |
| | | |
| | | sleepflagtime=HIDO_TimerGetTick(); |
| | | } |
| | | } |
| | | if(sleepflag) |
| | | { |
| | | if(HIDO_TimerGetTick() - sleepflagtime>3) |
| | | { |
| | | power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW); |
| | | mcu_deep_sleep(); |
| | | } |
| | | if(HIDO_TimerGetTick() - sleepflagtime>1) |
| | | { |
| | | if(!_4gclose_flag) |
| | | { |
| | | _4gclose_flag = 1; |
| | | PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); |
| | | } |
| | | } |
| | | |
| | | if(HIDO_TimerGetTick() - sleepflagtime>3) |
| | | { |
| | | power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW); |
| | | mcu_deep_sleep(); |
| | | } |
| | | } |
| | | } |
| | | void powerON_Task(void) |
| | |
| | | HIDO_TimerTick(); |
| | | // if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 |
| | | nomove_count++; |
| | | gaodu=GetPressAndHeight()*100; |
| | | // gaodu=GetPressAndHeight()*100; |
| | | // else{ |
| | | // nomove_count=g_com_map[NOMOVESLEEP_TIME]+1; |
| | | // } |
| | |
| | | // } |
| | | g_com_map[MODBUS_MODE] = 0; |
| | | log_4g_enable_flag=g_com_map[LOG_4G_ENABLE]; |
| | | g_com_map[VERSION] = (1<<8)|25; |
| | | g_com_map[VERSION] = (1<<8)|29; |
| | | |
| | | |
| | | LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); |
| | |
| | | LOG_INFO(TRACE_MODULE_APP,"设备UWB工作间隔: %x .\r\n",g_com_map[UWBFrequency]); |
| | | LOG_INFO(TRACE_MODULE_APP,"设备GPS工作间隔: %x .\r\n",g_com_map[GPSFrequency]); |
| | | LOG_INFO(TRACE_MODULE_APP,"当前GPS工作波特率: %d .\r\n",gpsbaudrate1); |
| | | #ifdef _4G_115200 |
| | | LOG_INFO(TRACE_MODULE_APP,"当前4G波特率: 115200.\r\n"); |
| | | #else |
| | | LOG_INFO(TRACE_MODULE_APP,"当前4G波特率: 9600.\r\n"); |
| | | #endif |
| | | // LOG_INFO(TRACE_MODULE_APP,"充电是否开机标志位: %d .\r\n",g_com_map[URT_BQ]); |
| | | if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) |
| | | { |
| | |
| | | IIC2_Init(); |
| | | Accelerometer_Init(); |
| | | // delay_ms(100); |
| | | BarInit(); |
| | | // BarInit(); |
| | | // delay_ms(100); |
| | | // gaodu=GetPressAndHeight(); |
| | | PCA9555_init(); |
| | | board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200); |
| | | board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_921600); |
| | | // while(1); |
| | | // Reset reason |
| | | reset_cause_get(); |
| | |
| | | |
| | | Uart_Register(UART_ID_DBG_GPS, UART_ID1); |
| | | DBG_Init(); |
| | | |
| | | |
| | | SendComMap(0x50,0); |
| | | Internet_Init(); |
| | | TCPClient_Init(); |
| | | // if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP) |
| | |
| | | PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 |
| | | adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 |
| | | pca_input_detection_init(pca_handler);//pca检测输入 |
| | | gaodu=GetPressAndHeight()*100; |
| | | // gaodu=GetPressAndHeight()*100; |
| | | while (1) |
| | | { |
| | | |