keil/include/main/main.c
@@ -67,6 +67,7 @@
#define DEBUG_MODE
extern int simple_main(void);
extern int temp_main(void);
void UserKeyState_change(void);
void uart_change_check(uint16_t gpio_state);
#define TEST_UART_POLL_MODE 0
#define TEST_UART_INTERUPT_MODE 1
@@ -249,6 +250,7 @@
//     {
//       keystarttime3 =  HIDO_TimerGetTick(); 
//     }
   UserKeyState_change();
void PowerTask(void)
{
@@ -313,6 +315,7 @@
{
   voltage_Task();
}
uint8_t fang_dou_flag=0;
void SecondTask(void)
{static uint8_t second_count;
    if(second_count++>60)
@@ -331,7 +334,17 @@
uint8_t tt=1;
uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag;
uint8_t uwb_enable_flag=0;
uint32_t falling_time,rising_time,press_start_time,current_time;
bool button_pressed;
uint8_t change_buffer_flag=0;
// 按键状态机
typedef enum {
    IDLE,           // 空闲状态
    WAIT_NEXT_RISING,        // 已按下待确认
    WAIT_NEXT_FALLING    // 等待释放状态
} ButtonState;
volatile ButtonState sos_state = IDLE,temp_state;
#define MAX_WAIT_TIME_S 3
void check_input_change(void)
{
   uint16_t gpio_state;
@@ -359,15 +372,32 @@
     delaysleep_count--;
    //GPS工作逻辑
}
void UserKeyState_change(void)
{
   if(change_buffer_flag)
   {
   current_time = HIDO_TimerGetTick();
      if(current_time-falling_time>MAX_WAIT_TIME_S)
      {//初始化状态
      change_buffer_flag=0;
         current_time=0;
         falling_time=0;
      }
   }
}
//static void move_handler(enum IO_PIN_T pin)
//{
//    nomove_count=0;
//}
uint8_t change_buffer_flag=0;
static void gpio_change_handler(enum IO_PIN_T pin)
{
change_buffer_flag=1;
      //change_buffer_flag=1;
      falling_time = HIDO_TimerGetTick();
    // 记录新的按下时间
      sos_state=WAIT_NEXT_RISING;
    change_buffer_flag = 1;
}
void _4gUsart_handler(enum IO_PIN_T pin)
@@ -418,7 +448,7 @@
    port = g_com_map[TCP_PORT];
    g_com_map[VERSION] = (1<<8)|0;
    LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
    LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
    LOG_INFO(TRACE_MODULE_APP,"固件版本:MK工装测试标签 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
    LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port);
}
@@ -551,9 +581,10 @@
            flag_secondtask = 0;
            SecondTask();
        }
//            PowerTask();
////            IMUTask();
            //UserKeyTask();
            UserKeyTask();
        IdleTask();
#ifndef DEBUG_MODE
//if(flag_sleeptimer)