| | |
| | | |
| | | /* Set expected response's delay and timeout. See NOTE 4 and 5 below. |
| | | * As this example only handles one incoming frame with always the same delay and timeout, those values can be set here once for all. */ |
| | | dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS); //设置åéåå¼å¯æ¥æ¶ï¼å¹¶è®¾å®å»¶è¿æ¶é´ |
| | | dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS); //è®¾ç½®æ¥æ¶è¶
æ¶æ¶é´ |
| | | //è®¾ç½®æ¥æ¶è¶
æ¶æ¶é´ |
| | | } |
| | | void Dw1000_App_Init(void) |
| | | { |
| | |
| | | uint32_t final_tx_time; |
| | | u32 start_poll; |
| | | u8 i; |
| | | LED0_ON; |
| | | //LED0_ON; |
| | | dwt_forcetrxoff(); |
| | | g_Resttimer=0; |
| | | GPIO_ResetBits(SPIx_GPIO, SPIx_CS); |
| | | delay_us(2500); |
| | | GPIO_SetBits(SPIx_GPIO, SPIx_CS); |
| | | dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS); //设置åéåå¼å¯æ¥æ¶ï¼å¹¶è®¾å®å»¶è¿æ¶é´ |
| | | dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS); |
| | | tag_succ_times = 0; |
| | | tx_poll_msg[BATTARY_IDX] = Get_Battary(); |
| | | tx_poll_msg[BUTTON_IDX] = !READ_KEY0; |
| | | |
| | | for(i=0;i<REPOET_ANC_NUM;i++) |
| | | { |
| | | /* Write frame data to DW1000 and prepare transmission. See NOTE 7 below. */ |
| | |
| | | result=dwt_starttx(DWT_START_TX_DELAYED);//设å®ä¸ºå»¶è¿åé |
| | | |
| | | tag_succ_times++; |
| | | #ifdef WORK_MODE_TAG |
| | | LED0_BLINK; |
| | | #endif |
| | | |
| | | /* Poll DW1000 until TX frame sent event set. See NOTE 8 below. */ |
| | | if(result==0) |
| | |
| | | } |
| | | // deca_sleep(10); |
| | | } |
| | | dwt_entersleep(); |
| | | // dwt_entersleep(); |
| | | if(tag_succ_times<REPOET_ANC_NUM_MIN) |
| | | { |
| | | random_delay_tim =time32_incr&0x8f+7; |
| | | deca_sleep(random_delay_tim); |
| | | } |
| | | LED0_BLINK; |
| | | //LED0_BLINK; |
| | | RTC_SET_ALARM(1); |
| | | /* Execute a delay between ranging exchanges. */ |
| | | |
| | | } |
| | | |
| | | extern uint8_t g_start_send_flag; |
| | | void Anchor_App(void) |
| | | { |
| | | uint32_t frame_len; |
| | |
| | | dwt_rxenable(0);//æå¼æ¥æ¶ |
| | | |
| | | /* Poll for reception of a frame or error/timeout. See NOTE 7 below. */ |
| | | while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))//䏿æ¥è¯¢è¯çç¶æç´å°æ¥æ¶æåæè
åºç°é误 |
| | | while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR))&&!g_start_send_flag)//䏿æ¥è¯¢è¯çç¶æç´å°æ¥æ¶æåæè
åºç°é误 |
| | | { |
| | | UART_CheckReceive(); |
| | | UART_CheckSend(); |