| | |
| | | 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}; |
| | |
| | | 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æ ç¾) |
| | |
| | | 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; |
| | |
| | | /* 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 |
| | |
| | | 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; |