zhyinch
2020-11-17 c8fa9e7b73d663fd1ee78632d38cea1b49c14d39
源码/核心板/Src/stm32f10x_it.c
@@ -1,11 +1,11 @@
/**
  ******************************************************************************
  * @file    Project/STM32F10x_StdPeriph_Template/stm32f10x_it.c
  * @file    Project/STM32F10x_StdPeriph_Template/stm32f10x_it.c
  * @author  MCD Application Team
  * @version V3.4.0
  * @date    10/15/2010
  * @brief   Main Interrupt Service Routines.
  *          This file provides template for all exceptions handler and
  *          This file provides template for all exceptions handler and
  *          peripherals interrupt service routine.
  ******************************************************************************
  * @copy
@@ -18,22 +18,154 @@
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  * <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>
  */
  */
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_it.h"
#include "stm32f10x.h"
#include "dw_app.h"
#include "global_param.h"
#include "beep_logic_app.h"
#include "led.h"
#include "Usart.h"
#include "dw_app.h"
/* Tick timer count. */
volatile unsigned long time32_incr;
volatile unsigned long time32_reset = 0;
void SysTick_Handler(void)
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;
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,getrange_success;
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??
{
    time32_incr++;
      time32_reset++;
   if(time32_reset>10000)
   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);
   if(sync_timer>=1000)
      {
//         if(getrange_success==0)
//         {
//            NVIC_SystemReset();
//         }
         flag_newsecond=1;
      //GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_SET);
         sync_timer=0;
        TagListUpdate();
      }
   if(g_Resttimer++>5000)
   {
      NVIC_SystemReset();
   }
   if(!g_com_map[DEV_ROLE])  //鍩虹珯
   {
      tag_recv_timer++;
      TagDistClear();
   if(g_com_map[ANC_POLL])
      {
         if(sync_timer==target_time)
         {
         g_start_send_flag=1;
         }
      }
      #ifdef USART_INTEGRATE_OUTPUT
      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==target_time)
      {
         last_polltime=sync_timer;
      //   GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_SET);
      g_start_send_flag=1;
      }
   }
      }
}
/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
void SysTick_Handler(void)
{
}
/**
  * @brief  涓柇鏈嶅姟鍑芥暟
  */
void EXTI1_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line1)!= RESET)
  {
    EXTI_ClearITPendingBit(EXTI_Line1);
  }
}
void USART1_IRQHandler(void)
{
  if(USART_GetITStatus(EXT_UART, USART_IT_RXNE) != RESET)//?????????
  {
       UART_CheckReceive();
  }
//  if(USART_GetITStatus(USARTy, USART_IT_TXE) != RESET)
//  {
//        USART_SendData(USARTy, TxBuffer1[TxCounter1++]);
//  }
}
void HardFalut_Handler(void)
{
   while(1)
   {
      NVIC_SystemReset();
   }
}