zhyinch
2020-09-15 015bafa2f40cfbf4ea884e26ebbbf398a5565b5a
Src/main.c
@@ -28,6 +28,8 @@
#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 -----------------------------------------------------------*/
@@ -91,6 +93,17 @@
   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;
   
@@ -109,6 +122,11 @@
//   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;
@@ -131,6 +149,11 @@
   }
   if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
   {
      if(state5v==0)
      {
         state5v=1;
         UsartInit();
      }
      if(bat_percent>99)
      {
         LED_LR_OFF;
@@ -140,6 +163,7 @@
         LED_LG_OFF;      
      }      
   }else{
      state5v=0;
      LED_LR_OFF;
      LED_LG_OFF;
//   }
@@ -211,7 +235,7 @@
   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;
@@ -311,6 +335,7 @@
  MX_SPI1_Init();
  MX_ADC_Init();
  /* USER CODE BEGIN 2 */
   LED_LG_ON;
   Program_Init();
   LIS3DH_Data_Init();   
   Dw1000_Init();
@@ -369,8 +394,9 @@
      }
         if(m_bEUARTTxEn==0&&waitusart_timer==0)
         {   
#ifndef DEBUG_MODE
            HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  
#endif
         }
      
 
@@ -753,6 +779,7 @@
  /*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)
@@ -773,6 +800,16 @@
   }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();