WXK
2023-11-07 8fba17d0f4bd55471333a5d95d394efb118ede35
Src/application/dw_app.c
@@ -78,7 +78,7 @@
   DISCPOLL,
   GETNEARMSG,
   NEARPOLL,
    SINGLEPOLL,
  SINGLEPOLL,
}tag_state=STARTPOLL;
static dwt_config_t config = {
   2,               /* Channel number. */
@@ -89,7 +89,7 @@
   9,               /* RX preamble code. Used in RX only. */
   1,               /* Use non-standard SFD (Boolean) */
   DWT_BR_6M8,      /* Data rate. */
   DWT_PHRMODE_STD, /* PHY header mode. */
   DWT_PHRMODE_EXT, /* PHY header mode. */
   (129 + 8 - 8)    /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
};
static uint8_t tx_poll_msg[20] = {0};
@@ -847,6 +847,7 @@
    
    }
}
u32 last_mindist_slavebaseid;
void NearPoll(void)
{
   
@@ -947,7 +948,7 @@
               if (status_reg & SYS_STATUS_RXFCG)//如果成功接收
                  {
                     dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);//清楚寄存器标志位
                     frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK;   //获得接收到的数据长度
                     frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFL_MASK_1023;   //获得接收到的数据长度
                     dwt_readrxdata(rx_buffer, frame_len, 0);   //读取接收数据
                            test2 = dwt_readcarrierintegrator();
                     dwt_setrxtimeout(0);//设定接收超时时间,0位没有超时时间
@@ -998,8 +999,8 @@
                           mainbase_dist=temp_dist;
                                    nearbase_distlist[0] = temp_dist;
                                    base_mindist = temp_dist;
                           if((rx_buffer[MOTORSTATE_INDEX]&0xf)!=3)
                              motor_state=rx_buffer[MOTORSTATE_INDEX]&0xf;
//                           if((rx_buffer[MOTORSTATE_INDEX]&0xf)!=3)
//                              motor_state=rx_buffer[MOTORSTATE_INDEX]&0xf;
                                    if(frame_len==38)
                                     {
                                         memcpy(&rec_maxrangelen,&rx_buffer[MAXRANGE_DISTANCE],2);
@@ -1094,7 +1095,9 @@
            #ifdef SWITCHBASE_DIST
            if(salvebase_mindist<mainbase_dist- THRESHOLD_CHANGE_MAINBASE_DIST )
            {
               changemainbase_count++;
               if(mindist_slavebaseid==last_mindist_slavebaseid)
               {
                  changemainbase_count++;
               if(changemainbase_count>2)
               {
                        changemainbase_count = 0;
@@ -1102,6 +1105,10 @@
                        tag_state = GETNEARMSG;                    
                        trygetnearmsg_times = 0;
                        GetNearMsg();
               }}
               else{
                  changemainbase_count = 1;
                  last_mindist_slavebaseid = mindist_slavebaseid;
               }
            }else{
               changemainbase_count = 0;
@@ -1322,6 +1329,8 @@
          //  Poll();
            break;
   }
    delay_ms(100);
//    dwt_forcetrxoff();
    FZNearPoll();
    dwt_forcetrxoff();
     userkey_state = !GET_USERKEY;