/** ****************************************************************************** * @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++]); // } }