From 8eeb0e8fbbde5e9cb33d895223322449fd58f345 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期一, 15 六月 2020 21:28:29 +0800 Subject: [PATCH] V1.18,武汉测试不错版本,为上一版本修改间隔到DELAY_BETWEEN_TWO_FRAME_UUS 300us --- 源码/核心板/Src/application/dw_app.c | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" index c3f95e8..ff3a407 100644 --- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" +++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" @@ -251,10 +251,21 @@ // change_base_count=0; // } //} +uint8_t GetRandomValue(void) +{ + uint8_t random_value=0,temp_adc,i; + for(i=0;i<8;i++) + { + temp_adc=Get_ADC_Value(); + random_value=random_value|((temp_adc&0x01)<<i); + } + return random_value; +} u8 GetRandomSlotPos(uint32_t emptyslot) { - u8 i; - for(i=dev_id%32;i<max_slotpos;i++) + u8 i,temp_value; + temp_value = GetRandomValue(); + for(i=temp_value%32;i<max_slotpos;i++) { if(((emptyslot>>i)&0x1)==0) { @@ -404,8 +415,7 @@ tx_nearfinal_msg[MESSAGE_TYPE_IDX]=NEAR_FINAL; dwt_writetxdata(28+nearbase_num*4, tx_nearfinal_msg, 0);//将发送数据写入DW1000 dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度 - memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4); - tagslotpos=GetRandomSlotPos(rec_tagpos_binary); + if(temp_dist!=0x1ffff) { @@ -442,6 +452,8 @@ dwt_writetxdata(28+nearbase_num*4, tx_nearfinal_msg, 0);//将发送数据写入DW1000 dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度 LED0_BLINK; +// memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4); +// tagslotpos=GetRandomSlotPos(rec_tagpos_binary); if(temp_dist!=0x1ffff) { #ifndef USART_INTEGRATE_OUTPUT @@ -880,12 +892,13 @@ while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR))&&!g_start_send_flag&&!g_start_sync_flag)//不断查询芯片状态直到接收成功或者出现错误 { IdleTask(); - g_Resttimer=0; }; if (status_reg & SYS_STATUS_RXFCG)//成功接收 { u16 tag_recv_interval; float temp_tagpos; + + g_Resttimer=0; dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG);//清除标志位 frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFL_MASK_1023;//获得接收数据长度 dwt_readrxdata(rx_buffer, frame_len, 0);//读取接收数据 -- Gitblit v1.9.3