From d3a77da7be3808ce65448dbfa9d43d13ba9e0ecd Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期二, 17 八月 2021 14:58:21 +0800 Subject: [PATCH] 增加基站状态输出,增加map表对比 --- 源码/核心板/Src/main.c | 80 +++++++++++++++++++++++++--------------- 1 files changed, 50 insertions(+), 30 deletions(-) diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" index 3b3dd22..6de1a95 100644 --- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" +++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" @@ -21,13 +21,14 @@ Nvic_Init(); // Systick_Init(); TIM3_Int_Init(); - Led_Init(); + Beep_Init(); DW_GPIO_Init(); Uart1_Init(); + Uart2_Init(); Spi_Init(); ADC_Configuration(); - + Led_Init(); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); } u8 anchor_type; @@ -62,10 +63,10 @@ {module_power=MAX_RFPOWER;} if(module_power<0) {module_power=0;} - if(g_com_map[MAX_REPORT_ANC_NUM]>10) - {g_com_map[MAX_REPORT_ANC_NUM]=10;} - if(g_com_map[MAX_REPORT_ANC_NUM]<1) - {g_com_map[MAX_REPORT_ANC_NUM]=1;} +// if(g_com_map[MAX_REPORT_ANC_NUM]>10) +// {g_com_map[MAX_REPORT_ANC_NUM]=10;} +// if(g_com_map[MAX_REPORT_ANC_NUM]<1) +// {g_com_map[MAX_REPORT_ANC_NUM]=1;} if(g_com_map[IMU_THRES]>10) {g_com_map[IMU_THRES]=10;} if(g_com_map[IMU_THRES]<1) @@ -93,7 +94,7 @@ #endif OUT485_ENABLE; ComMapCheck(); - g_com_map[VERSION] = 0x020f; + g_com_map[VERSION] = 0x0218; dev_id = g_com_map[DEV_ID]; slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]*SLOT_SCALE)+3; max_slotpos=g_com_map[COM_INTERVAL]/slottime; @@ -122,8 +123,9 @@ for(i=0;i<255;i++) { - g_Tagdist[i]=0xffff; + g_Tagdist[i]=0x1ffff; } + memcpy(g_com_map2,g_com_map,COM_MAP_SIZE); } /*! ------------------------------------------------------------------------------------------------------------------ @@ -135,15 +137,23 @@ * * @return none */ +extern float GetPressAndHeight(void); extern u16 synclost_count; +extern float Height; +int32_t intheight; void HeatBeat(void) { u16 checksum; + GetPressAndHeight(); + intheight = Height*100;//+g_com_map[MAX_REPORT_ANC_NUM]; if(synclost_count>5) { hbsend[6] = 0; }else{ hbsend[6] = 1; } + if(intheight!=0) + intheight+=(int16_t)g_com_map[MAX_REPORT_ANC_NUM]; + memcpy(&hbsend[7],&intheight,4); checksum = Checksum_u16(&hbsend[2],12); memcpy(&hbsend[14],&checksum,2); UART_PushFrame(hbsend,16); @@ -160,27 +170,35 @@ UART_CheckReceive(); UART_CheckSend(); - UART_CheckReceive(); + UART2_CheckReceive(); + if( memcmp(g_com_map2,g_com_map,COM_MAP_SIZE)!=0) + { + SendAnchorState(SM_MAPERROR); + delay_ms(100); + // STMFLASH_Write_NoCheck(0x8004A38,0xAAAA); + // Delay_ms(100); + SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader + } if(heartbeat_timer>1000) { heartbeat_timer=0; if(g_com_map[HEARTBEAT]&&g_com_map[DEV_ROLE]==0) HeatBeat(); } - if(flag_newsecond) - { - flag_newsecond=0; - tagpos_binary=0; - memcpy(ancidlist_send,ancidlist_rec,ancidlist_num*2); - ancidlist_num=0; - for(u8 i=0;i<max_slotpos;i++) - { - if(tagpos_rec[i]) - tagpos_binary|=1<<i; - tagpos_rec[i] = 0; - } - } +// if(flag_newsecond) +// { +// flag_newsecond=0; +// tagpos_binary=0; +// memcpy(ancidlist_send,ancidlist_rec,ancidlist_num*2); +// ancidlist_num=0; +// for(u8 i=0;i<max_slotpos;i++) +// { +// if(tagpos_rec[i]) +// tagpos_binary|=1<<i; +// tagpos_rec[i] = 0; +// } +// } if(target_time>1000) {target_time-=1000;} #ifdef USART_INTEGRATE_OUTPUT @@ -199,6 +217,7 @@ { uint32_t result = 0; u16 tmp = 0xAAAA; + SendAnchorState(SM_UPDATE); __disable_irq(); result = FLASH_Prepare(0x8004A38, 2); if(result) @@ -212,14 +231,14 @@ // Delay_ms(100); SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader } - if(g_com_map[CNT_REBOOT]==1) - { - g_com_map[CNT_REBOOT]=0; - g_com_map[MAP_SIGN_INDEX]=0; - save_com_map_to_flash(); - delay_ms(100); - SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader - } +// if(g_com_map[CNT_REBOOT]==1) +// { +// g_com_map[CNT_REBOOT]=0; +// g_com_map[MAP_SIGN_INDEX]=0; +// save_com_map_to_flash(); +// delay_ms(100); +// SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader +// } if(g_com_map[CNT_RESTART]==1) { g_com_map[CNT_RESTART]=0; @@ -239,6 +258,7 @@ Device_Init(); Program_Init(); Dw1000_Init(); + BarInit(); delay_ms(10); Dw1000_App_Init(); /* Loop forever initiating ranging exchanges. */ -- Gitblit v1.9.3