zhyinch
2021-10-28 49ea99f3529ef4519d2e2a2db26d3fc81668e35c
Src/main.c
@@ -31,7 +31,7 @@
#define NSH1 0x0001
#define GP   0x0002
//#define DEBUG_MODE
#define DEBUG_MODE
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@@ -253,40 +253,9 @@
#define FIXSLOTPOS  4
u16 slotpos_intoatl;
uint16_t bigslot_num;
uint8_t fix_slotpos =FIXSLOTPOS;
int32_t lpcount,lptime,target_time;
extern u16 tagslotpos;
void SetNextPollTime(u16 slotpos) //时间片逻辑:上来默认计算一个时间,时间同步之后,就近选择时间片。SetNextPollTime会调整下次发送
{
#ifdef FIXSLOT
   fix_slotpos =FIXSLOTPOS;
   fix_slotpos = g_com_map[ALARM_DISTANCE2];
   slotpos = fix_slotpos;
   tagslotpos = fix_slotpos;
#endif
   while(current_slotnum>=tag_frequency)
   {   current_slotnum-=tag_frequency;}
   slotpos_intoatl = current_slotnum*bigslot_num+slotpos;
   if(current_slotnum==19)
   {slotpos_intoatl = current_slotnum*bigslot_num+slotpos;}
   target_time=(slotpos_intoatl*SLOTTIME_MS+100)*100;
   //if(target_time<90000)
   {
      lptime=target_time-offsettimeus+1200;
      lpcount = lptime/LPTIMER_LSB;
   if(lpcount>LPTIMER_1S_COUNT)
      lpcount-=LPTIMER_1S_COUNT;
   if(lpcount<0)
   {
   lpcount+=LPTIMER_1S_COUNT;
   }
   __HAL_LPTIM_COMPARE_SET(&hlptim1, lpcount);
}
}
void ErrorConfig_Handler(void)
{
      if(g_com_map[COM_INTERVAL]==0||g_com_map[COM_INTERVAL]>1000)
@@ -318,7 +287,7 @@
//   g_com_map[DEV_ROLE]=1;
//      g_com_map[DEV_ID]=0x4009;
//    g_com_map[ACTIVE_INDEX]=1;
   g_com_map[COM_INTERVAL]=100;
   g_com_map[COM_INTERVAL]=50;
//   g_com_map[MAX_REPORT_ANC_NUM]=1;
//   g_com_map[NOMOVESLEEP_TIME]=10;
//         g_com_map[IMU_ENABLE]=0;
@@ -326,7 +295,7 @@
#endif
//g_com_map[NOMOVESLEEP_TIME]=10;
//   g_com_map[IMU_ENABLE]=0;
//    g_com_map[COM_INTERVAL]=1000;
    g_com_map[COM_INTERVAL]=50;
   active_flag = g_com_map[ACTIVE_INDEX];
   if(active_flag==0)
   {   
@@ -477,9 +446,15 @@
//      {
//      MODBUS_Poll();
//      }
if(m_bEUARTTxEn==0&&waitusart_timer==0&&(motor_state==0||motor_state==3))
         {
#ifndef DEBUG_MODE
            if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
            HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
#endif
         }
      if(g_start_send_flag&&active_flag)
   { static uint16_t blink_count=0;
      SystemClock_Config();
      g_start_send_flag = 0;   
   //   GetPressAndTemp();
//      if(current_count>slot_startcount&&current_count<slot_startcount+interval_count)
@@ -504,15 +479,7 @@
      {
         waitusart_timer--;
      }
         if(m_bEUARTTxEn==0&&waitusart_timer==0&&(motor_state==0||motor_state==3))
         {
#ifndef DEBUG_MODE
            if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
            HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
#endif
         }
   }else{
   IdleTask();   
   }
@@ -957,11 +924,10 @@
void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim)
{
   static uint8_t i=0;
   i++;
   SystemClock_Config();
   g_start_send_flag=1;
   current_slotnum++;
   SetNextPollTime(tagslotpos);
//   current_slotnum++;
//   SetNextPollTime(tagslotpos);
   nomove_count+=1/(float)tag_frequency;
   if(motor_keeptime>0)
   {