/**
******************************************************************************
* @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.
*
*
© COPYRIGHT 2010 STMicroelectronics
*/
/* 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,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;
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);
if(sync_timer>=1000)
{
if(pwtag.remain_time>0)
{pwtag.remain_time--;}
flag_newsecond=1;
//GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_SET);
sync_timer=0;
TagListUpdate();
}
if(g_Resttimer++>12000)
{
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;
}
}
}
}
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++]);
// }
}