| | |
| | | /* Tick timer count. */ |
| | | volatile uint32_t time32_incr; |
| | | uint8_t tt=0; |
| | | uint8_t g_start_send_flag = 0,sync_seq=0,usart_send_flag; |
| | | u16 usart_timer=0; |
| | | uint8_t g_start_send_flag = 0,sync_seq=0,usart_send_flag,waitsync_flag=0; |
| | | u16 usart_timer=0,synclost_count=0; |
| | | uint16_t sysscal; |
| | | u16 tag_recv_timer, tag_timer,last_polltime; |
| | | extern uint16_t g_Resttimer,heartbeat_timer,sync_timer; |
| | | extern uint8_t g_pairstart; |
| | | u8 neartimout_timer=0,flag_syncbase=0; |
| | | extern u16 tyncpoll_time; |
| | | u8 neartimout_timer=0,flag_syncbase=0,flag_newsecond=0; |
| | | extern u16 tyncpoll_time,target_time; |
| | | extern uint32_t synclost_timer,current_syncid; |
| | | void TIM3_IRQHandler(void) //TIM3?? |
| | | { |
| | | if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //??TIM3???????? |
| | | { |
| | | TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //??TIMx?????? |
| | | |
| | | // main_logic(); |
| | | time32_incr++; |
| | | heartbeat_timer++; |
| | | sync_timer++; |
| | | neartimout_timer++; |
| | | synclost_timer++; |
| | | GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_RESET); |
| | | GPIO_WriteBit(GPIOA, GPIO_Pin_8, Bit_RESET); |
| | | if(sync_timer>=1000) |
| | | { |
| | | GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_SET); |
| | | {uint8_t i; |
| | | 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); |
| | | sync_timer=0; |
| | | synclost_count++; |
| | | TagListUpdate(); |
| | | if(g_com_map[BASESYNCSEQ]==1) //鏈ā鍧楁槸鍚屾鍩虹珯 |
| | | { |
| | | synclost_count = 0; |
| | | current_syncid = 1; |
| | | sync_seq=0; |
| | | SyncPoll(sync_seq); |
| | | } |
| | | } |
| | | |
| | | if(g_Resttimer++>2000) |
| | | if(g_Resttimer++>12000) |
| | | { |
| | | NVIC_SystemReset(); |
| | | } |
| | |
| | | TagDistClear(); |
| | | if(g_com_map[ANC_POLL]) |
| | | { |
| | | if(sync_timer%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer<990&&sync_timer!=last_polltime) |
| | | if(sync_timer==target_time) |
| | | { |
| | | g_start_send_flag=1; |
| | | } |
| | | } |
| | | |
| | | #ifdef USART_INTEGRATE_OUTPUT |
| | | if(sync_timer%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer<990) |
| | | if(sync_timer%g_com_map[COM_INTERVAL]==0) |
| | | { |
| | | |
| | | usart_send_flag=1; |
| | | } |
| | | #endif |
| | | if(sync_timer>500&&dev_id!=0) |
| | | { |
| | | sync_seq=0xff; |
| | | } |
| | | if(synclost_timer>SYNCLOST_TIME) |
| | | { |
| | | flag_syncbase=1; |
| | | } |
| | | |
| | | if(flag_syncbase) //鏈ā鍧楁槸鍚屾鍩虹珯 |
| | | { |
| | | if(sync_timer==995) |
| | | { |
| | | current_syncid = g_com_map[DEV_ID]; |
| | | sync_seq=0; |
| | | SyncPoll(sync_seq,current_syncid); |
| | | } |
| | | } |
| | | }else{ //鏍囩鍚屾澶勭悊 |
| | | if(sync_timer%g_com_map[COM_INTERVAL]==tyncpoll_time&&sync_timer<990&&sync_timer!=last_polltime) |
| | | if(sync_timer==target_time) |
| | | { |
| | | |
| | | last_polltime=sync_timer; |
| | | // GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_SET); |
| | | g_start_send_flag=1; |