| | |
| | | #include "dw_app.h" |
| | | #include "ADC.h" |
| | | #define TDFILTER |
| | | //#define TDFILTER |
| | | enum enumtagstate |
| | | { |
| | | DISCPOLL, |
| | |
| | | } |
| | | } |
| | | } |
| | | void SetNLOSNTMSettings(void) |
| | | { |
| | | uint8_t temp; |
| | | temp = 7; |
| | | dwt_writetodevice(LDE_IF_ID,LDE_CFG1_OFFSET,1,&temp); |
| | | dwt_write16bitoffsetreg(LDE_IF_ID,LDE_CFG2_OFFSET,3); |
| | | // NTM = dwt_read32bitoffsetreg(LDE_IF_ID,LDE_CFG1_OFFSET) & LDE_CFG1_NSTDEV_MASK; |
| | | } |
| | | void Dw1000_Init(void) |
| | | { |
| | | /* Reset and initialise DW1000. |
| | |
| | | /* Configure DW1000. See NOTE 6 below. */ |
| | | dwt_configure(&config);//é
ç½®DW1000 |
| | | |
| | | |
| | | SetNLOSNTMSettings(); |
| | | |
| | | /* Apply default antenna delay value. See NOTE 1 below. */ |
| | | dwt_setrxantennadelay(RX_ANT_DLY); //è®¾ç½®æ¥æ¶å¤©çº¿å»¶è¿ |
| | |
| | | memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4); |
| | | if(temp_dist!=0x1ffff) |
| | | { |
| | | g_Resttimer=0; |
| | | #ifndef USART_INTEGRATE_OUTPUT |
| | | usart_send[2] = 1;//æ£å¸¸æ¨¡å¼ |
| | | usart_send[3] = 17;//æ°æ®æ®µé¿åº¦ |
| | |
| | | { |
| | | //LED0_ON; |
| | | dwt_forcetrxoff(); |
| | | g_Resttimer=0; |
| | | GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_SET); |
| | | switch(tag_state) |
| | | { |
| | |
| | | /*--------------------------以ä¸ä¸ºéæµè·é»è¾------------------------*/ |
| | | //dist_cm=33000; |
| | | getrange_success = 1; |
| | | g_Resttimer=0; |
| | | LED0_BLINK; //æ¯æå䏿¬¡é讯åéªç䏿¬¡ |
| | | dis_after_filter=dist_cm; |
| | | hex_dist = dist_cm+(int16_t)g_com_map[DIST_OFFSET]*10; |
| | | g_flag_Taggetdist[taglist_pos]=0; |
| | | if(hex_dist>-10000&&hex_dist<2000000) |
| | | if(hex_dist>0&&hex_dist<2000000) |
| | | { |
| | | if(abs(hex_dist-his_dist[taglist_pos])<15000||misdist_num[taglist_pos]>3) |
| | | if(abs(hex_dist-his_dist[taglist_pos])<10000||misdist_num[taglist_pos]>3) |
| | | { |
| | | int32_t filter_dist; |
| | | #ifdef TDFILTER |
| | |
| | | // if (anchor_type == rx_buffer[ANC_TYPE_IDX]) |
| | | // Anchor_RecPoll(); |
| | | // break; |
| | | case SYNC: |
| | | g_Resttimer=0; |
| | | case SYNC: |
| | | memcpy(&rec_syncid,&rx_buffer[ANCHOR_ID_IDX],4); |
| | | if(rec_syncid<current_syncid) |
| | | { |
| | |
| | | } |
| | | break; |
| | | |
| | | case NEAR_POLL: |
| | | g_Resttimer=0; |
| | | case NEAR_POLL: |
| | | memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2); |
| | | if(tag_id_recv>=g_com_map[WHITELIST1_START]&&tag_id_recv<=g_com_map[WHITELIST1_END]) |
| | | {break;} |
| | | taglist_pos=CmpTagInList(tag_id_recv); |
| | | if(taglist_pos==taglist_num) |
| | | { |