| | |
| | | RCC_Configuration(); |
| | | //SystemInit(); |
| | | NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x5000); |
| | | Nvic_Init(); |
| | | |
| | | // Systick_Init(); |
| | | TIM3_Int_Init(); |
| | | |
| | |
| | | Spi_Init(); |
| | | ADC_Configuration(); |
| | | Led_Init(); |
| | | Nvic_Init(); |
| | | GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); |
| | | } |
| | | u8 anchor_type; |
| | |
| | | for(i=0;i<255;i++) |
| | | { |
| | | g_Tagdist[i]=0x1ffff; |
| | | IdleTask(); |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | UART_CheckSend(); |
| | | UART2_CheckReceive(); |
| | | |
| | | if( memcmp(g_com_map2,g_com_map,COM_MAP_SIZE)!=0) |
| | | { |
| | | SendAnchorState(SM_MAPERROR); |
| | | delay_ms(100); |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //杞浣嶅洖鍒癰ootloader |
| | | } |
| | | 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(target_time>1000) |
| | | {target_time-=1000;} |
| | | #ifdef USART_INTEGRATE_OUTPUT |
| | | if(g_com_map[DEV_ROLE]==0&&usart_send_flag) |
| | | {u16 checksum; |
| | | usart_send_flag=0; |
| | | usart_send_anc[2] = 5;//姝e父妯″紡 |
| | | usart_send_anc[3] = anc_report_num*6+2;//姝e父妯″紡 |
| | | checksum = Checksum_u16(&usart_send_anc[2],anc_report_num*6+2); |
| | | memcpy(&usart_send_anc[4+anc_report_num*6],&checksum,2); |
| | | UART_PushFrame(usart_send_anc,6+anc_report_num*6); |
| | | anc_report_num=0; |
| | | } |
| | | #endif |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA) |
| | | { |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //杞浣嶅洖鍒癰ootloader |
| | | } |
| | | // #ifdef USART_INTEGRATE_OUTPUT |
| | | // if(g_com_map[DEV_ROLE]==0&&usart_send_flag) |
| | | // {u16 checksum; |
| | | // usart_send_flag=0; |
| | | // usart_send_anc[2] = 5;//姝e父妯″紡 |
| | | // usart_send_anc[3] = anc_report_num*6+2;//姝e父妯″紡 |
| | | // checksum = Checksum_u16(&usart_send_anc[2],anc_report_num*6+2); |
| | | // memcpy(&usart_send_anc[4+anc_report_num*6],&checksum,2); |
| | | // UART_PushFrame(usart_send_anc,6+anc_report_num*6); |
| | | // anc_report_num=0; |
| | | // } |
| | | // #endif |
| | | |
| | | |
| | | } |
| | | u32 secondtimer; |
| | | void OneSecondTask(void) |
| | | { |
| | | if(time32_incr-secondtimer>1000) |
| | | { |
| | | uint8_t i; |
| | | secondtimer = time32_incr; |
| | | for(i=0;i<MAX_REGTAGNUM;i++) |
| | | { |
| | | if(regtag_map.remain_time[i]>0) |
| | | { |
| | | regtag_map.remain_time[i]--; |
| | | } |
| | | } |
| | | if(pwtag.remain_time>0) |
| | | {pwtag.remain_time--;} |
| | | flag_newsecond=1; |
| | | // GPIO_WriteBit(GPIOA, GPIO_Pin_8, Bit_SET); |
| | | synclost_count++; |
| | | TagListUpdate(); |
| | | |
| | | |
| | | if(g_com_map[HEARTBEAT]&&g_com_map[DEV_ROLE]==0&&(heartbeat_timer++>60)) |
| | | { |
| | | heartbeat_timer = 0; |
| | | HeatBeat(); |
| | | } |
| | | if( memcmp(g_com_map2,g_com_map,COM_MAP_SIZE)!=0) |
| | | { |
| | | SendAnchorState(SM_MAPERROR); |
| | | delay_ms(100); |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //杞浣嶅洖鍒癰ootloader |
| | | } |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA) |
| | | { |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //杞浣嶅洖鍒癰ootloader |
| | | } |
| | | |
| | | } |
| | | } |
| | | extern u8 needanchorrx; |
| | | int main(void) |
| | | { |
| | | |
| | |
| | | //SendComMap(50, 0); |
| | | while(1) |
| | | { |
| | | g_start_sync_flag=0; |
| | | if(g_start_send_flag) |
| | | { |
| | | g_start_send_flag = 0; |
| | | Tag_App(); |
| | | } |
| | | // g_start_sync_flag=0; |
| | | // if(g_start_send_flag) |
| | | // { |
| | | // g_start_send_flag = 0; |
| | | // Tag_App(); |
| | | // } |
| | | // OneSecondTask(); |
| | | IdleTask(); |
| | | if(g_com_map[DEV_ROLE]!=1) |
| | | Anchor_App(); |
| | | |
| | | if(g_com_map[DEV_ROLE]==0&&needanchorrx==1) |
| | | {needanchorrx = 0; |
| | | Anchor_Start(); |
| | | } |
| | | } |
| | | } |
| | | |