zhyinch
2020-10-19 8e3c571a48a30e8c1bd07dca4786a53d7c9994f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/**
  ******************************************************************************
  * @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>&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 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++]);
 
//  }    
 
}