| | |
| | | #include "deca_device_api.h" |
| | | #include "global_param.h" |
| | | #include "TrackingDiff.h" |
| | | #include "dw_app.h" |
| | | //#define DEBUG_MODE |
| | | /* USER CODE END Includes */ |
| | | |
| | | /* Private typedef -----------------------------------------------------------*/ |
| | |
| | | u16 count=HAL_LPTIM_ReadCounter(&hlptim1); |
| | | return count*LPTIMER_LSB/1000; |
| | | } |
| | | void UsartInit(void) |
| | | { |
| | | waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME; |
| | | MX_DMA_Init(); |
| | | MX_USART1_UART_Init(); |
| | | if(HAL_UART_Receive_DMA(&huart1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE)) |
| | | { |
| | | Error_Handler(); |
| | | } |
| | | } |
| | | uint8_t state5v; |
| | | void IdleTask(void) |
| | | {u16 current_time; |
| | | |
| | |
| | | // LED_TR_OFF; |
| | | current_time=GetLPTime(); |
| | | //motor_state=2; |
| | | if(g_com_map[MOTOR_ONTIME]>0) |
| | | { |
| | | g_com_map[MOTOR_ONTIME]--; |
| | | motor_state = 1; |
| | | } |
| | | switch(motor_state) |
| | | {case 0: |
| | | MOTOR_OFF; |
| | |
| | | } |
| | | if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | if(state5v==0) |
| | | { |
| | | state5v=1; |
| | | UsartInit(); |
| | | } |
| | | if(bat_percent>99) |
| | | { |
| | | LED_LR_OFF; |
| | |
| | | LED_LG_OFF; |
| | | } |
| | | }else{ |
| | | state5v=0; |
| | | LED_LR_OFF; |
| | | LED_LG_OFF; |
| | | // } |
| | |
| | | Usart1ParseDataCallback = UsartParseDataHandler; |
| | | parameter_init(); |
| | | //deca_sleep(1000); |
| | | g_com_map[VERSION] = 0x010d; |
| | | g_com_map[VERSION] = 0x010f; |
| | | #ifdef DEBUG_MODE |
| | | // g_com_map[DEV_ROLE]=1; |
| | | // g_com_map[DEV_ID]=1; |
| | |
| | | MX_SPI1_Init(); |
| | | MX_ADC_Init(); |
| | | /* USER CODE BEGIN 2 */ |
| | | LED_LG_ON; |
| | | Program_Init(); |
| | | LIS3DH_Data_Init(); |
| | | Dw1000_Init(); |
| | |
| | | } |
| | | if(m_bEUARTTxEn==0&&waitusart_timer==0) |
| | | { |
| | | |
| | | #ifndef DEBUG_MODE |
| | | HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | #endif |
| | | } |
| | | |
| | | |
| | |
| | | /*Enter the Standby mode*/ |
| | | HAL_PWR_EnterSTANDBYMode(); |
| | | } |
| | | extern uint8_t tx_near_msg[80],stationary_flag; |
| | | extern float nomove_count; |
| | | float key_keeptime; |
| | | void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) |
| | |
| | | }else{ |
| | | key_keeptime=0; |
| | | } |
| | | if(nomove_count>STATIONARY_TIME) |
| | | { |
| | | stationary_flag = 1; |
| | | }else{ |
| | | stationary_flag = 0; |
| | | } |
| | | if(nomove_count>=g_com_map[NOMOVESLEEP_TIME]-1&&imu_enable) |
| | | { |
| | | tx_near_msg[TAGSTATE] = tx_near_msg[TAGSTATE]|GOINGSLEEPBIT; |
| | | } |
| | | if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable) |
| | | { |
| | | mcu_sleep(); |