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