1
zhyinch
2021-10-25 c5193cf1c2e36894cbb2d7e9cd171b64f81ae8ea
Src/main.c
@@ -254,52 +254,7 @@
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)
   {
     g_com_map[COM_INTERVAL]=100;
   }
   if(g_com_map[IMU_THRES]>10)
   {g_com_map[IMU_THRES]=2;}
    if(g_com_map[POWER]>MAX_RFPOWER)
      {g_com_map[POWER]=MAX_RFPOWER;}
      if(g_com_map[POWER]<0)
      {g_com_map[POWER]=0;}
}
u8 active_flag=0;
void Program_Init(void)
{   float temp;
@@ -962,7 +917,7 @@
      
   g_start_send_flag=1;
   current_slotnum++;
   SetNextPollTime(tagslotpos);
   //SetNextPollTime(tagslotpos);
   nomove_count+=1/(float)tag_frequency;
   if(motor_keeptime>0)
   {