/**
|
******************************************************************************
|
* @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
|
* peripherals interrupt service routine.
|
******************************************************************************
|
* @copy
|
*
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
*
|
* <h2><center>© 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 uint32_t time32_incr;
|
uint8_t tt=0;
|
uint8_t g_start_send_flag = 0,sync_seq=0;
|
uint16_t sysscal;
|
u16 tag_recv_timer, tag_timer;
|
extern uint16_t g_Resttimer,heartbeat_timer,sync_timer;
|
extern uint8_t g_pairstart;
|
u16 timer3;
|
extern u16 tyncpoll_time;
|
void TIM3_IRQHandler(void) //TIM3??
|
{
|
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //??TIM3????????
|
{
|
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //??TIMx??????
|
time32_incr++;
|
g_UWB_com_interval++;
|
heartbeat_timer++;
|
poll_timer++;
|
|
if(tag_timer++>=g_com_map[COM_INTERVAL])
|
{tag_timer=0;}
|
if(g_Resttimer++>2000)
|
{
|
NVIC_SystemReset();
|
}
|
|
|
sync_timer++;
|
|
if(!g_com_map[DEV_ROLE]) //»ùÕ¾
|
{
|
tag_recv_timer++;
|
TagDistClear();
|
if(g_com_map[ANC_POLL])
|
{
|
if((sync_timer-10)%g_com_map[COM_INTERVAL]==tyncpoll_time)
|
{
|
g_start_send_flag=1;
|
}
|
}
|
// if(g_com_map[ALARM_DEV]!=0)
|
main_logic();
|
if(sync_timer==10)
|
{
|
GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_SET);
|
}else{
|
GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_RESET);
|
}
|
if(sync_timer>500&&dev_id!=0)
|
{
|
sync_seq=0xff;
|
}
|
if(sync_timer>=1010)
|
{
|
sync_timer=0;
|
if(dev_id==0)
|
{
|
SyncPoll(0);
|
}
|
}
|
}else{ //±êǩͬ²½´¦Àí
|
if(sync_timer>=1010)
|
{sync_timer=0;}
|
if((sync_timer-10)%g_com_map[COM_INTERVAL]==tyncpoll_time)
|
{
|
GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_SET);
|
}
|
if((sync_timer-10)%g_com_map[COM_INTERVAL]==tyncpoll_time)
|
{
|
g_start_send_flag=1;
|
}
|
|
}
|
|
}
|
}
|
|
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++]);
|
|
// }
|
|
}
|