zhyinch
2020-12-25 3a1d007b19b92f62bbbb8f14cbbdb26a61ac05f5
Src/main.c
@@ -88,6 +88,7 @@
uint16_t lastpoll_count,interval_count,slot_startcount,tag_frequency,lastpoll_time,current_time;
extern uint8_t module_power;
extern float nomove_count;
float motor_keeptime;
uint8_t imu_enable,motor_enable;   
u16 GetLPTime(void)
{
@@ -104,9 +105,10 @@
    Error_Handler();
   }
}
u16 current_time;
uint8_t state5v;
void IdleTask(void)
{u16 current_time;
{
   
         UART_CheckReceive();
      UART_CheckSend();
@@ -125,6 +127,12 @@
   //motor_state=2;
if(g_com_map[MOTOR_ENABLE])
{
      if(motor_keeptime>0)
      {
         motor_state = 2;
      }else{
         motor_state = 0;
      }
   switch(motor_state)
      {case 0:
         MOTOR_OFF;
@@ -135,8 +143,7 @@
            MOTOR_ON;      
         }else{
            MOTOR_OFF;   
         }
         }
         break;
      case 2:
         MOTOR_ON;   
@@ -211,7 +218,7 @@
u16 current_slotnum;
extern int32_t offsettimeus;
//#define FIXSLOT
#define FIXSLOTPOS  1
#define FIXSLOTPOS  2
u16 slotpos_intoatl;
uint16_t bigslot_num;
uint8_t fix_slotpos =FIXSLOTPOS; 
@@ -221,13 +228,14 @@
{
#ifdef FIXSLOT
//   fix_slotpos =FIXSLOTPOS;
   fix_slotpos = g_com_map[ALARM_DISTANCE1];
   slotpos = fix_slotpos;
   tagslotpos = fix_slotpos;
#endif
   if(current_slotnum>=tag_frequency)
      current_slotnum-=tag_frequency;
   while(current_slotnum>=tag_frequency)
   {   current_slotnum-=tag_frequency;}
   slotpos_intoatl = current_slotnum*bigslot_num+slotpos;
   if(current_slotnum==19)
@@ -236,7 +244,7 @@
   
   //if(target_time<90000)
   {
      lptime=target_time-offsettimeus-10000;
      lptime=target_time-offsettimeus+1200;
      lpcount = lptime/LPTIMER_LSB;
   if(lpcount>LPTIMER_1S_COUNT)
      lpcount-=LPTIMER_1S_COUNT;
@@ -255,7 +263,8 @@
   Usart1ParseDataCallback = UsartParseDataHandler;
   parameter_init();
   //deca_sleep(1000);
   g_com_map[VERSION] = 0x020e;
   g_com_map[VERSION] = 0x0213;
//   g_com_map[DEV_ID]=0x11;
#ifdef DEBUG_MODE
//   g_com_map[DEV_ROLE]=1;
   //   g_com_map[DEV_ID]=0x11;
@@ -267,7 +276,7 @@
#endif
//g_com_map[NOMOVESLEEP_TIME]=10;
//   g_com_map[IMU_ENABLE]=0;
//    g_com_map[COM_INTERVAL]=50;
//    g_com_map[COM_INTERVAL]=1000;
   active_flag = g_com_map[ACTIVE_INDEX];
   if(active_flag==0)
   { g_com_map[COM_INTERVAL]=1000;
@@ -306,9 +315,9 @@
    Error_Handler();
  }
//g_com_map[NOMOVESLEEP_TIME]=5;
   printf("标签ID: %d .\r\n",dev_id);
   printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
   printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
//   printf("标签ID: %d .\r\n",dev_id);
//   printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
//   printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
   
//   printf("DEVICE PAIRID: %d .\r\n",g_com_map[PAIR_ID]);
@@ -437,7 +446,7 @@
      {
         waitusart_timer--;
      }
         if(m_bEUARTTxEn==0&&waitusart_timer==0)
         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))
@@ -839,6 +848,10 @@
   current_slotnum++;
   SetNextPollTime(tagslotpos);
   nomove_count+=(float)g_com_map[COM_INTERVAL]/1000;
   if(motor_keeptime>0)
   {
   motor_keeptime-=(float)g_com_map[COM_INTERVAL]/1000;
   }
   if(active_flag==0)
   {
   if(!GET_USERKEY)
@@ -873,13 +886,7 @@
   }
      
   }
   if(motor_ontime>0)
   {
      motor_ontime-=(float)1/tag_frequency;
      motor_state = 2;
   }else{
      motor_state = 0;
   }
   if(!GET_USERKEY)
   {
      key_keeptime+=(float)g_com_map[COM_INTERVAL]/1000;