guanjiao ren
2018-05-18 e8e11e82bd02e63ebc167b69fc3e585a99d78276
Ô´Âë/ºËÐİå/Src/main.c
@@ -21,14 +21,12 @@
#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 "led.h"
#include "beep.h"
/* Example application name and version to display on LCD screen. */
#define APP_NAME "DS TWR INIT v1.1"
@@ -193,17 +191,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};
@@ -213,18 +211,27 @@
uint32_t rec_dist, hex_dist;
uint16_t check;
uint8_t tempaaaa[5] = {0};
void Device_Init(void)
{
   Rcc_Init();
   Nvic_Init();
   Systick_Init();
   Led_Init();
   Beep_Init();
   DW_GPIO_Init();
   Usart_Init();
   Spi_Init();
   
   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
   while(1)
   {
      dwt_readsystime(tempaaaa);
      delay_ms(500);
//      dwt_readsystime(&tempb);
//      delay_ms(500);
   }
}
int main(void)
@@ -273,7 +280,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 +346,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;
@@ -367,7 +374,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
@@ -497,16 +505,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;