guanjiao ren
2018-05-18 7440843d3a1e108fdf78b8cfff073aa60a2a41f7
Ô´Âë/ºËÐİå/Src/main.c
@@ -21,13 +21,10 @@
#include <stdio.h>
#include "deca_device_api.h"
#include "deca_regs.h"
#include "deca_sleep.h"
#include "lcd.h"
#include "port.h"
#include "Rcc_Nvic_Systick.h"
#include "Usart.h"
#include "Spi.h"
#include "dw_driver.h
#include "dw_driver.h"
#include "led.h"
/* Example application name and version to display on LCD screen. */
@@ -140,10 +137,10 @@
        *ts += ts_field[i] << (i * 8);
    }
}
void GPIO_Toggle(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
{
    GPIO_WriteBit(GPIOx, GPIO_Pin, (BitAction)!GPIO_ReadOutputDataBit(GPIOx, GPIO_Pin));
}
//void GPIO_Toggle(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
//{
//    GPIO_WriteBit(GPIOx, GPIO_Pin, (BitAction)!GPIO_ReadOutputDataBit(GPIOx, GPIO_Pin));
//}
int fputc(int ch, FILE *f)
{
@@ -193,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);
    }
}
extern volatile unsigned long time32_reset;
extern uint8_t Work_Mode;
//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;
uint8_t Work_Mode = 1;
uint32 frame_len;
uint8_t send[9];
char dist_str[16] = {0};
@@ -273,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标签)
@@ -339,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;
@@ -366,8 +363,9 @@
                    /* Increment frame sequence number after transmission of the final message (modulo 256). */
                    frame_seq_nb++;
                    time32_reset = 0;
                    GPIO_Toggle(GPIOA, LED_PIN); //LED闪烁
//                    time32_reset = 0;
//                    GPIO_Toggle(GPIOA, LED_PIN); //LED闪烁
               LED0_BLINK;
                    jumptime = 0;
                }
                else
@@ -496,17 +494,17 @@
                            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
//                            time32_reset = 0;
                            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;