From 57b984b8395bb30b2d170369c75f19722502b104 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期一, 21 四月 2025 16:38:37 +0800
Subject: [PATCH] 新增加速度计步数检测功能,3s发一次数据和停止30秒1分钟发一次数据

---
 keil/include/drivers/PCA9555.c |   69 ++++++++++++----------------------
 1 files changed, 25 insertions(+), 44 deletions(-)

diff --git a/keil/include/drivers/PCA9555.c b/keil/include/drivers/PCA9555.c
index fad7960..ede8444 100644
--- a/keil/include/drivers/PCA9555.c
+++ b/keil/include/drivers/PCA9555.c
@@ -79,7 +79,7 @@
     uint8_t ucErrTime=0;
 //  IIC2_SDA_IN();  
  
-	gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,1); //SDA设置为输入等待接收端的应答信号
+	gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,0); //SDA设置为输入等待接收端的应答信号
 	 SDA_1;
 	delay_us(6);
 	SCL_1;
@@ -107,7 +107,7 @@
 void IIC2_pca_send_Ack(void)
 {
     SCL_0;
-    SDA_0;//读取SDA电平为低则有应答
+///    SDA_0;//读取SDA电平为低则有应答
     delay_us(10);
     SCL_1;
 		delay_us(10);
@@ -530,7 +530,8 @@
 	  PCA9555_Set_One_Value_Config(GREEN_LED,0);   //设置GREEN_LED为输出
 	  //管脚
 	  PCA9555_Set_One_Value_Config(LORA_NRST,0);	//设置LORA_NRST为输出
-	  PCA9555_Set_One_Value_Config(BT_EN,0);			//设置BT_EN为输出	
+	  PCA9555_Set_One_Value_Config(BT_EN,0);			//设置BT_EN为输出
+		PCA9555_Set_One_Value_Output(BT_EN,0);	
 	  PCA9555_Set_One_Value_Config(MOTO,0);       //设置MOTO为输出
 	
 		//PCA9555_Set_One_Value_Config(LORA_IRQ,1);		//设置LORAIRQ为输入
@@ -568,7 +569,7 @@
 
 //	PCA9555_Set_One_Value_Config(SOS_ENBALE,1);//设置SOS按钮输入
   LORA_NRST_UP;	
-	LORA_LED_ON;
+	LORA_LED_OFF;
 	GREEN_LED_OFF;
 	UWB_LED_OFF;
 	RED_LED_OFF;
@@ -597,29 +598,25 @@
 
 }
 uint8_t LORA_IRQ_flag=0;
-uint8_t Sos_state;
+uint8_t SOS_KEY_STATE=0;
+extern uint16_t uwb_time_count;
 void SOS_irq_callback()
 {
-	
-	Sos_state=!Sos_state;
-	if(Sos_state)
+	SOS_KEY_STATE=!SOS_KEY_STATE;
+	if(SOS_KEY_STATE)
 	{
-
-
-		UWB_LED_ON;
-
+	GREEN_LED_ON;
+//	onemin_onesecond_flag=1;
+//	uwb_time_count=0;
+//	CloseUWB();
 	}
 	else
 	{
-
-		UWB_LED_OFF;
-
+//	onemin_onesecond_flag=0;
+	GREEN_LED_OFF;
+//	uwb_time_count=0;
+//	CloseUWB();
 	}
-	
-	
-	
-	
-
 
 }
 //void WAKE_UP_irq_callback()
@@ -628,31 +625,14 @@
 //}
 void move_handler()
 {
-    nomove_count=0;
-	  Sos_state=!Sos_state;
-		if(Sos_state)
-	{
-	LORA_LED_ON;
-	}
-	else
-	{
-	LORA_LED_OFF;
-	}
-	  
+    nomove_count=0;	 	
+		
 }
+
 void check_input_change(void)
 {
         uint16_t gpio_state;
         gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
-//        if(LORA_IRQ_POSITION&gpio_state)
-//        {
-
-//				//Lora_irq_callback();
-//        }
-//				else
-//				{
-//				
-//				}
 				if(BT_IRQ_POSITION&gpio_state)
 				{
 
@@ -663,11 +643,13 @@
 				}
 			  if(WK_UP_POSITION&gpio_state)
 				{
+				 //移动
          move_handler();
 				}
 
-        //uart_change_check(gpio_state);
 }
+
+
 
 
 //static void pca_input_detect_irq_handler(enum IO_PIN_T pin)
@@ -678,12 +660,11 @@
 
 
 void pca_input_detection_init(GPIO_IRQ_HANDLER_T irq_handler)
-{
-        
+{   
         gpio_pin_set_dir(PCA_INPUT_DETECT , GPIO_DIR_IN, 0);
         io_pull_set(PCA_INPUT_DETECT, IO_PULL_UP, IO_PULL_UP_LEVEL2);
         gpio_enable_irq(PCA_INPUT_DETECT, GPIO_IRQ_TYPE_FALLING_EDGE, irq_handler);
-        power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
+//        power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
 }
 
 

--
Gitblit v1.9.3