zhangbo
7 天以前 dd08a0f8ffd2c5ae1db9ba5aa90f3c41e264749c
keil/include/main/main.c
@@ -24,6 +24,7 @@
#include "PCA9555.h"
#include "WS2812.h"
#include "DBG.h"
#include "SC7A22H.h"
//#define DEBUG_MODE
extern int simple_main(void);
@@ -48,6 +49,7 @@
#define INACTIVE_TIMEOUT 30
uint8_t input5v_flag=0;
extern uint8_t mUsartReceivePack[100];
extern uint8_t mUsart2ReceivePack[150];
extern uint8_t state5V_prase_flag,gps_prase_flag;
@@ -275,6 +277,7 @@
}
 
}
uint16_t gaodu;
uint8_t guanjiflag;
uint8_t heartbeasend_flag;
uint32_t guanjiflagtime;
@@ -366,6 +369,7 @@
    HIDO_TimerTick();
//      if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出
    nomove_count++;
    gaodu=GetPressAndHeight()*100;
//      else{
//      nomove_count=g_com_map[NOMOVESLEEP_TIME]+1;
//      }
@@ -586,7 +590,7 @@
//      }
    g_com_map[MODBUS_MODE] = 0;
      log_4g_enable_flag=g_com_map[LOG_4G_ENABLE];
    g_com_map[VERSION] = (1<<8)|22;
    g_com_map[VERSION] = (1<<8)|24;
          
        
    LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
@@ -623,10 +627,16 @@
extern uint8_t ota_flag;
uint8_t bat_percent_only_one=1;
extern uint8_t jiancebat_percent_flag;
extern uint8_t double_click_flag;
void IdleTask(void)
{
if(read_5v_input_pca())
      {
      if(input5v_flag==0)
    {
     NVIC_SystemReset();
    }
            if(state5v==0)
            {
                state5v=1;
@@ -680,8 +690,8 @@
                        HIDO_TimerPoll();
                        HIDO_ATLitePoll();
                        TCPClient_Poll();
                        if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
                        {TCPClient_Poll_1();}
//                        if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
//                        {TCPClient_Poll_1();}
                        if(flag_secondtask)
                        {
                            flag_secondtask = 0;
@@ -785,6 +795,19 @@
             }         
         
         }
  if(double_click_flag)
  {
     double_click_flag=0;
     nomove_count=0;
     unsigned char CLICK_status;
     SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x39, 1, &CLICK_status);
     test_gravity_reading();
  }
}
void boot_deinit(void)
{
@@ -902,7 +925,6 @@
int test1,test3;
uint32_t test4;
extern uint8_t receive_flag;
uint16_t gaodu;
static void app_wdt_callback(void *dev, uint32_t status)
{
    ASSERT(status, "WDT TIMEOUT,程序复位");
@@ -921,14 +943,16 @@
    boot_deinit();
    board_pins_config();
    gpio_open();
   IIC2_Init();
   Accelerometer_Init();
     IIC2_Init();
     Accelerometer_Init();
//     delay_ms(100);
    BarInit();
//     delay_ms(100);
//   gaodu=GetPressAndHeight();
    PCA9555_init();   
   board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200);
     board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_921600);
     pca_input_detection_init(pca_handler);//pca检测输入
//   while(1);
    // Reset reason
    reset_cause_get();
@@ -960,10 +984,10 @@
//       NTRIPClient_Init();
//       NTRIPApp_Init();
//    }
    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
    {
        TCPClient_Init_1();
    }
//    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
//    {
//        TCPClient_Init_1();
//    }
//    HTTPClient_Init();
    wdt_open(WDT_ID0,&app_wdt_cfg);//30s检测喂狗
    LED_output_init();//配置彩色灯引脚
@@ -981,11 +1005,12 @@
    if(!read_5v_input_pca())
    {
     Set4LEDColor(BLUE,GREEN,WHITE,RED);
     delay_ms(500);
     delay_ms(100);
     Set4LEDColor(RED,WHITE,RED,WHITE);
     delay_ms(500);
     delay_ms(100);
     Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);       
    }
    g_com_map[MODBUS_MODE] = 0;
    state5v=0;
    state5V_prase_flag=state5v;
@@ -1000,8 +1025,10 @@
    sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试
    PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
    pca_input_detection_init(pca_handler);//pca检测输入
    gaodu=GetPressAndHeight()*100;
      if(read_init_5v_input_pca())
      {input5v_flag=1;}
    while (1)
    { 
@@ -1011,17 +1038,20 @@
        HIDO_ATLitePoll();
        TCPClient_Poll();
        wdt_ping(WDT_ID0);//喂狗
        if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
        {
            TCPClient_Poll_1();
        }
//        if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
//        {
//            TCPClient_Poll_1();
//        }
        if(flag_secondtask)
        {
            flag_secondtask = 0;
            SecondTask();
        }
          IMUTask();
//       SC7A22H_get_double_click();
//        SL_SC7A22H_RawData_Read();
      IMUTask();
        IdleTask();
            check_step_and_update_state();
      check_step_and_update_state();
//        test_gravity_reading();
    }
}