guanjiao ren
2018-05-18 7440843d3a1e108fdf78b8cfff073aa60a2a41f7
spi与dw_driver重写
已修改10个文件
260 ■■■■■ 文件已修改
源码/核心板/MDK-ARM/Project.uvoptx 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/MDK-ARM/Project.uvprojx 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/ExternalDevices/dw_driver.c 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/ExternalDevices/dw_driver.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/ExternalDevices/led.h 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/OnChipDevices/Rcc_Nvic_Systick.c 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/OnChipDevices/Rcc_Nvic_Systick.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/OnChipDevices/Spi.c 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/decadriver/deca_device.c 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
源码/核心板/Src/main.c 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Ô´Âë/ºËÐİå/MDK-ARM/Project.uvoptx
@@ -101,6 +101,8 @@
        <sRunDeb>0</sRunDeb>
        <sLrtime>0</sLrtime>
        <bEvRecOn>1</bEvRecOn>
        <bSchkAxf>0</bSchkAxf>
        <bTchkAxf>0</bTchkAxf>
        <nTsel>1</nTsel>
        <sDll></sDll>
        <sDllPa></sDllPa>
@@ -208,6 +210,10 @@
      <pszMrule></pszMrule>
      <pSingCmds></pSingCmds>
      <pMultCmds></pMultCmds>
      <pMisraNamep></pMisraNamep>
      <pszMrulep></pszMrulep>
      <pSingCmdsp></pSingCmdsp>
      <pMultCmdsp></pMultCmdsp>
    </TargetOption>
  </Target>
@@ -291,6 +297,8 @@
        <sRunDeb>0</sRunDeb>
        <sLrtime>0</sLrtime>
        <bEvRecOn>1</bEvRecOn>
        <bSchkAxf>0</bSchkAxf>
        <bTchkAxf>0</bTchkAxf>
        <nTsel>1</nTsel>
        <sDll></sDll>
        <sDllPa></sDllPa>
@@ -398,6 +406,10 @@
      <pszMrule></pszMrule>
      <pSingCmds></pSingCmds>
      <pMultCmds></pMultCmds>
      <pMisraNamep></pMisraNamep>
      <pszMrulep></pszMrulep>
      <pSingCmdsp></pSingCmdsp>
      <pMultCmdsp></pMultCmdsp>
    </TargetOption>
  </Target>
@@ -481,6 +493,8 @@
        <sRunDeb>0</sRunDeb>
        <sLrtime>0</sLrtime>
        <bEvRecOn>1</bEvRecOn>
        <bSchkAxf>0</bSchkAxf>
        <bTchkAxf>0</bTchkAxf>
        <nTsel>1</nTsel>
        <sDll></sDll>
        <sDllPa></sDllPa>
@@ -588,6 +602,10 @@
      <pszMrule></pszMrule>
      <pSingCmds></pSingCmds>
      <pMultCmds></pMultCmds>
      <pMisraNamep></pMisraNamep>
      <pszMrulep></pszMrulep>
      <pSingCmdsp></pSingCmdsp>
      <pMultCmdsp></pMultCmdsp>
    </TargetOption>
  </Target>
@@ -671,6 +689,8 @@
        <sRunDeb>0</sRunDeb>
        <sLrtime>0</sLrtime>
        <bEvRecOn>1</bEvRecOn>
        <bSchkAxf>0</bSchkAxf>
        <bTchkAxf>0</bTchkAxf>
        <nTsel>1</nTsel>
        <sDll></sDll>
        <sDllPa></sDllPa>
@@ -778,6 +798,10 @@
      <pszMrule></pszMrule>
      <pSingCmds></pSingCmds>
      <pMultCmds></pMultCmds>
      <pMisraNamep></pMisraNamep>
      <pszMrulep></pszMrulep>
      <pSingCmdsp></pSingCmdsp>
      <pMultCmdsp></pMultCmdsp>
    </TargetOption>
  </Target>
@@ -861,6 +885,8 @@
        <sRunDeb>0</sRunDeb>
        <sLrtime>0</sLrtime>
        <bEvRecOn>1</bEvRecOn>
        <bSchkAxf>0</bSchkAxf>
        <bTchkAxf>0</bTchkAxf>
        <nTsel>1</nTsel>
        <sDll></sDll>
        <sDllPa></sDllPa>
@@ -968,6 +994,10 @@
      <pszMrule></pszMrule>
      <pSingCmds></pSingCmds>
      <pMultCmds></pMultCmds>
      <pMisraNamep></pMisraNamep>
      <pszMrulep></pszMrulep>
      <pSingCmdsp></pSingCmdsp>
      <pMultCmdsp></pMultCmdsp>
    </TargetOption>
  </Target>
@@ -1051,6 +1081,8 @@
        <sRunDeb>0</sRunDeb>
        <sLrtime>0</sLrtime>
        <bEvRecOn>1</bEvRecOn>
        <bSchkAxf>0</bSchkAxf>
        <bTchkAxf>0</bTchkAxf>
        <nTsel>3</nTsel>
        <sDll></sDll>
        <sDllPa></sDllPa>
@@ -1213,6 +1245,10 @@
      <pszMrule></pszMrule>
      <pSingCmds></pSingCmds>
      <pMultCmds></pMultCmds>
      <pMisraNamep></pMisraNamep>
      <pszMrulep></pszMrulep>
      <pSingCmdsp></pSingCmdsp>
      <pMultCmdsp></pMultCmdsp>
      <DebugDescription>
        <Enable>1</Enable>
        <EnableLog>0</EnableLog>
@@ -1627,7 +1663,7 @@
  </Group>
  <Group>
    <GroupName>platform</GroupName>
    <GroupName>OnChipDevices</GroupName>
    <tvExp>1</tvExp>
    <tvExpOptDlg>0</tvExpOptDlg>
    <cbSel>0</cbSel>
@@ -1639,34 +1675,14 @@
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>..\Src\platform\port.c</PathWithFileName>
      <FilenameWithoutPath>port.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
  </Group>
  <Group>
    <GroupName>OnChipDevices</GroupName>
    <tvExp>1</tvExp>
    <tvExpOptDlg>0</tvExpOptDlg>
    <cbSel>0</cbSel>
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>33</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>..\Src\OnChipDevices\Usart.c</PathWithFileName>
      <FilenameWithoutPath>Usart.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>34</FileNumber>
      <GroupNumber>5</GroupNumber>
      <FileNumber>33</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1677,8 +1693,8 @@
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>35</FileNumber>
      <GroupNumber>5</GroupNumber>
      <FileNumber>34</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1697,8 +1713,8 @@
    <cbSel>0</cbSel>
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>7</GroupNumber>
      <FileNumber>36</FileNumber>
      <GroupNumber>6</GroupNumber>
      <FileNumber>35</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1709,8 +1725,8 @@
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>7</GroupNumber>
      <FileNumber>37</FileNumber>
      <GroupNumber>6</GroupNumber>
      <FileNumber>36</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
Ô´Âë/ºËÐİå/MDK-ARM/Project.uvprojx
@@ -10,6 +10,7 @@
      <TargetName>STM32100E-EVAL</TargetName>
      <ToolsetNumber>0x4</ToolsetNumber>
      <ToolsetName>ARM-ADS</ToolsetName>
      <uAC6>0</uAC6>
      <TargetOption>
        <TargetCommonOption>
          <Device>STM32F100ZE</Device>
@@ -551,16 +552,6 @@
          </Files>
        </Group>
        <Group>
          <GroupName>platform</GroupName>
          <Files>
            <File>
              <FileName>port.c</FileName>
              <FileType>1</FileType>
              <FilePath>..\Src\platform\port.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>
          <GroupName>OnChipDevices</GroupName>
          <Files>
            <File>
@@ -601,6 +592,7 @@
      <TargetName>STM3210E-EVAL_XL</TargetName>
      <ToolsetNumber>0x4</ToolsetNumber>
      <ToolsetName>ARM-ADS</ToolsetName>
      <uAC6>0</uAC6>
      <TargetOption>
        <TargetCommonOption>
          <Device>STM32F103ZG</Device>
@@ -1142,16 +1134,6 @@
          </Files>
        </Group>
        <Group>
          <GroupName>platform</GroupName>
          <Files>
            <File>
              <FileName>port.c</FileName>
              <FileType>1</FileType>
              <FilePath>..\Src\platform\port.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>
          <GroupName>OnChipDevices</GroupName>
          <Files>
            <File>
@@ -1192,6 +1174,7 @@
      <TargetName>STM32100B-EVAL</TargetName>
      <ToolsetNumber>0x4</ToolsetNumber>
      <ToolsetName>ARM-ADS</ToolsetName>
      <uAC6>0</uAC6>
      <TargetOption>
        <TargetCommonOption>
          <Device>STM32F102CB</Device>
@@ -1733,16 +1716,6 @@
          </Files>
        </Group>
        <Group>
          <GroupName>platform</GroupName>
          <Files>
            <File>
              <FileName>port.c</FileName>
              <FileType>1</FileType>
              <FilePath>..\Src\platform\port.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>
          <GroupName>OnChipDevices</GroupName>
          <Files>
            <File>
@@ -1783,6 +1756,7 @@
      <TargetName>STM3210C-EVAL</TargetName>
      <ToolsetNumber>0x4</ToolsetNumber>
      <ToolsetName>ARM-ADS</ToolsetName>
      <uAC6>0</uAC6>
      <TargetOption>
        <TargetCommonOption>
          <Device>STM32F107VC</Device>
@@ -2324,16 +2298,6 @@
          </Files>
        </Group>
        <Group>
          <GroupName>platform</GroupName>
          <Files>
            <File>
              <FileName>port.c</FileName>
              <FileType>1</FileType>
              <FilePath>..\Src\platform\port.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>
          <GroupName>OnChipDevices</GroupName>
          <Files>
            <File>
@@ -2374,6 +2338,7 @@
      <TargetName>STM3210E-EVAL</TargetName>
      <ToolsetNumber>0x4</ToolsetNumber>
      <ToolsetName>ARM-ADS</ToolsetName>
      <uAC6>0</uAC6>
      <TargetOption>
        <TargetCommonOption>
          <Device>STM32F103ZE</Device>
@@ -2915,16 +2880,6 @@
          </Files>
        </Group>
        <Group>
          <GroupName>platform</GroupName>
          <Files>
            <File>
              <FileName>port.c</FileName>
              <FileType>1</FileType>
              <FilePath>..\Src\platform\port.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>
          <GroupName>OnChipDevices</GroupName>
          <Files>
            <File>
@@ -2966,6 +2921,7 @@
      <ToolsetNumber>0x4</ToolsetNumber>
      <ToolsetName>ARM-ADS</ToolsetName>
      <pCCUsed>5060422::V5.06 update 4 (build 422)::ARMCC</pCCUsed>
      <uAC6>0</uAC6>
      <TargetOption>
        <TargetCommonOption>
          <Device>STM32F103T8</Device>
@@ -3503,16 +3459,6 @@
              <FileName>deca_range_tables.c</FileName>
              <FileType>1</FileType>
              <FilePath>..\Src\decadriver\deca_range_tables.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>
          <GroupName>platform</GroupName>
          <Files>
            <File>
              <FileName>port.c</FileName>
              <FileType>1</FileType>
              <FilePath>..\Src\platform\port.c</FilePath>
            </File>
          </Files>
        </Group>
Ô´Âë/ºËÐİå/Src/ExternalDevices/dw_driver.c
@@ -1,4 +1,5 @@
#include "dw_driver.h"
#include "deca_device_api.h"
void Reset_DW1000(void)
{
@@ -49,12 +50,16 @@
    EXTI_InitStructure.EXTI_Line = DECAIRQ_EXTI;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;    //MPW3 IRQ polarity is high by default
    EXTI_InitStructure.EXTI_LineCmd = DISABLE;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
}
//读取外部中断状态
ITStatus Get_Ext_IRQ_Statues(void)
{
    return EXTI_GetITStatus(DECAIRQ_EXTI);
}
//使能外部中断
@@ -66,7 +71,7 @@
//禁止外部中断
void Disable_Ext_IRQ(void)
{
    NVIC_DisnableIRQ(DECAIRQ_EXTI_IRQn);
    NVIC_DisableIRQ(DECAIRQ_EXTI_IRQn);
}
/*! ------------------------------------------------------------------------------------------------------------------
@@ -85,11 +90,11 @@
 */
decaIrqStatus_t decamutexon(void)
{
    decaIrqStatus_t s = port_GetEXT_IRQStatus();
    decaIrqStatus_t s = Get_Ext_IRQ_Statues();
    if(s)
    {
        port_DisableEXT_IRQ(); //disable the external interrupt line
        Disable_Ext_IRQ(); //disable the external interrupt line
    }
    return s ;   // return state before disable, value is used to re-enable in decamutexoff call
}
@@ -113,6 +118,7 @@
{
    if(s)   //need to check the port state as we can't use level sensitive interrupt on the STM ARM
    {
        port_EnableEXT_IRQ();
        Enable_Ext_IRQ();
    }
}
}
Ô´Âë/ºËÐİå/Src/ExternalDevices/dw_driver.h
@@ -18,5 +18,6 @@
#define deca_sleep(...)                delay_ms(__VA_ARGS__)
void Reset_DW1000(void);
void DW_GPIO_Init(void);
#endif
Ô´Âë/ºËÐİå/Src/ExternalDevices/led.h
@@ -6,10 +6,11 @@
#define LED0_PIN                    GPIO_Pin_8
#define LED0_GPIO                    GPIOA
#define LED_BLINK(...)                GPIO_Toggle(...)
#define LED_BLINK(...)                GPIO_Toggle(__VA_ARGS__)
#define LED0_BLINK                    LED_BLINK(LED0_GPIO, LED0_PIN)
void Led_Init(void);
void GPIO_Toggle(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
#endif
Ô´Âë/ºËÐİå/Src/OnChipDevices/Rcc_Nvic_Systick.c
@@ -48,7 +48,7 @@
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
    
    /* Enable and set EXTI Interrupt to the lowest priority */
    NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannel = DECAIRQ_EXTI_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
@@ -65,7 +65,7 @@
        while (time_retry--);
        return 1;
    }
    NVIC_SetPriority (SysTick_IRQn, 5);
    NVIC_SetPriority(SysTick_IRQn, 5);
    return 0;
    
Ô´Âë/ºËÐİå/Src/OnChipDevices/Rcc_Nvic_Systick.h
@@ -4,6 +4,8 @@
#include "stm32f10x.h"
#define DECAIRQ_EXTI_IRQn            EXTI2_IRQn
void Rcc_Init(void);
void Nvic_Init(void);
int Systick_Init(void);
Ô´Âë/ºËÐİå/Src/OnChipDevices/Spi.c
@@ -1,4 +1,5 @@
#include "Spi.h"
#include "deca_device_api.h"
void Spi_Init(void)
{
@@ -79,12 +80,12 @@
 * Takes two separate byte buffers for write header and write data
 * returns 0 for success, or -1 for error
 */
int writetospi_serial
int writetospi
(
    uint16_t       headerLength,
    const uint8_t *headerBuffer,
    uint32_t       bodylength,
    const uint8_t *bodyBuffer
    uint16       headerLength,
    const uint8 *headerBuffer,
    uint32       bodylength,
    const uint8 *bodyBuffer
)
{
@@ -130,12 +131,12 @@
 * returns the offset into read buffer where first byte of read data may be found,
 * or returns -1 if there was an error
 */
int readfromspi_serial
int readfromspi
(
    uint16_t       headerLength,
    const uint8_t *headerBuffer,
    uint32_t       readlength,
    uint8_t       *readBuffer
    uint16       headerLength,
    const uint8 *headerBuffer,
    uint32       readlength,
    uint8       *readBuffer
)
{
Ô´Âë/ºËÐİå/Src/decadriver/deca_device.c
@@ -1049,7 +1049,7 @@
 */
uint32 dwt_read32bitoffsetreg(int regFileID, int regOffset)
{
    uint32  regval = DWT_ERROR ;
    uint32  regval = (uint32)DWT_ERROR ;
    int     j ;
    uint8   buffer[4] ;
@@ -1081,7 +1081,7 @@
 */
uint16 dwt_read16bitoffsetreg(int regFileID, int regOffset)
{
    uint16  regval = DWT_ERROR ;
    uint16  regval = (uint16)DWT_ERROR ;
    uint8   buffer[2] ;
    int result = dwt_readfromdevice(regFileID, regOffset, 2, buffer); // Read 2 bytes (16-bits) register into buffer
@@ -1396,7 +1396,7 @@
        break;
    default :
        //  printf("OTP SET MR: ERROR : Invalid mode selected\n",mode);
        return DWT_ERROR;
        return (uint32)DWT_ERROR;
    }
    wr_buf[0] = mra & 0x00ff;
@@ -1530,7 +1530,7 @@
    if((rd_buf[0] & 0x02) != 0x02)
    {
        //        printf("OTP PROG 32: ERROR VPP NOT OK, programming will fail. Are MR/MRA/MRB set?\n");
        return DWT_ERROR;
        return (uint32)DWT_ERROR;
    }
    // Write the data
Ô´Âë/ºËÐİå/Src/main.c
@@ -190,17 +190,17 @@
    sum = ~sum;
    return sum;
}
void LED_blink(void)
{
    uint8_t ii;
    for (ii = 0; ii < 10; ii++)
    {
        GPIO_Toggle(GPIOA, LED_PIN);
        deca_sleep(100);
    }
}
//void LED_blink(void)
//{
//    uint8_t ii;
//    for (ii = 0; ii < 10; ii++)
//    {
//        GPIO_Toggle(GPIOA, LED_PIN);
//        deca_sleep(100);
//    }
//}
//extern volatile unsigned long time32_reset;
extern uint8_t Work_Mode;
uint8_t Work_Mode = 1;
uint32 frame_len;
uint8_t send[9];
char dist_str[16] = {0};
@@ -270,7 +270,7 @@
    rx_resp_msg[5] = TAG_ID;//UWB RESPONSE åŒ…数据
    tx_final_msg[5] = TAG_ID;//UWB Fianl åŒ…数据
    /* Loop forever initiating ranging exchanges. */
    LED_blink();
//LED_blink();
    if(!Work_Mode)   //选择发送模式(TAG标签)还是接收模式(ANCHOR基站)
    {
        while (1)            //发送模式(TAG标签)
@@ -336,15 +336,15 @@
                    dwt_writetxfctrl(sizeof(tx_final_msg), 0);//设定发送数据长度
                    dwt_starttx(DWT_START_TX_DELAYED);//设定为延迟发送
                    if (GPIO_ReadInputDataBit(GPIOA, SW2) != RESET) //通过拨码开关判断数据输出格式
                    {
                        dID = TAG_ID;
                        printf("TAG_ID: %2.0f        ", dID);
                        dID = ANCHOR_ID;
                        printf("ANCHOR_ID: %2.0f        ", dID);
                        printf("Distance: %5.0f cm\n", (double)dist[TAG_ID]);
                    }
                    else
//                    if (GPIO_ReadInputDataBit(GPIOA, SW2) != RESET) //通过拨码开关判断数据输出格式
//                    {
//                        dID = TAG_ID;
//                        printf("TAG_ID: %2.0f        ", dID);
//                        dID = ANCHOR_ID;
//                        printf("ANCHOR_ID: %2.0f        ", dID);
//                        printf("Distance: %5.0f cm\n", (double)dist[TAG_ID]);
//                    }
//                    else
                    {
                        send[2] = ANCHOR_ID;
                        send[3] = TAG_ID;
@@ -364,7 +364,8 @@
                    /* Increment frame sequence number after transmission of the final message (modulo 256). */
                    frame_seq_nb++;
//                    time32_reset = 0;
                    GPIO_Toggle(GPIOA, LED_PIN); //LED闪烁
//                    GPIO_Toggle(GPIOA, LED_PIN); //LED闪烁
                    LED0_BLINK;
                    jumptime = 0;
                }
                else
@@ -494,16 +495,16 @@
                            dis = dist2 * 100; //dis ä¸ºå•位为cm的距离
                            dist[TAG_ID] = LP(dis, TAG_ID); //LP ä¸ºä½Žé€šæ»¤æ³¢å™¨ï¼Œè®©æ•°æ®æ›´ç¨³å®š
//                            time32_reset = 0;
                            GPIO_Toggle(GPIOA, LED_PIN);
                            if (GPIO_ReadInputDataBit(GPIOA, SW2) != RESET) //通过拨码开关判断数据输出格式
                            {
                                dID = TAG_ID;
                                printf("TAG_ID: %2.0f        ", dID);
                                dID = ANCHOR_ID;
                                printf("ANCHOR_ID: %2.0f        ", dID);
                                printf("Distance: %5.0f cm\n", (double)dist[TAG_ID]);
                            }
                            else
                            LED0_BLINK;
//                            if (GPIO_ReadInputDataBit(GPIOA, SW2) != RESET) //通过拨码开关判断数据输出格式
//                            {
//                                dID = TAG_ID;
//                                printf("TAG_ID: %2.0f        ", dID);
//                                dID = ANCHOR_ID;
//                                printf("ANCHOR_ID: %2.0f        ", dID);
//                                printf("Distance: %5.0f cm\n", (double)dist[TAG_ID]);
//                            }
//                            else
                            {
                                send[2] = ANCHOR_ID;
                                send[3] = TAG_ID;