From 5ee4fd97245fed0d45fb60d1aa38cca83e788ed5 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期二, 20 五月 2025 16:13:14 +0800
Subject: [PATCH] 修改了计步逻辑还有蓝牙上传逻辑

---
 keil/include/main/main.c |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index a0cc5fe..323c301 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -336,6 +336,7 @@
 extern uint16_t sleep_time;
 uint8_t input5v_time;
 extern uint8_t uwbled,btled,loraled,powerled;
+uint8_t jibu_flag;
 static void sleep_timer_callback(void *dev, uint32_t time)
 {
 	  input5v_time=1;
@@ -343,8 +344,8 @@
 	  HIDO_TimerTick();
 //	  lora_tx_flag++;
 	  uwb_time_count++;
-
-//    upload_apppoll();
+    jibu_flag=1;
+    upload_apppoll();
 
 		if (current_state == STATE_NORMAL)
 	  {
@@ -394,12 +395,14 @@
 }
 uint16_t sleep_time=0;
 uint32_t state_start_time_jibu=0;
+uint8_t exercise_state=0;
 void check_step_and_update_state(void)
 {
     if ((step_count != last_step_count))
 		{
         // 步数有变化,重置状态为正常状态
       last_step_count = step_count;
+			
 			if(current_state == STATE_SLEEP)
 			{
 				state_start_time_jibu = uwb_time_count;
@@ -417,6 +420,7 @@
 //            state_start_time = uwb_time_count; // 重置测距周期
 //        }
 			current_state = STATE_NORMAL;
+			exercise_state=1;
 			last_step_count = step_count;
 			
     } 
@@ -424,11 +428,12 @@
 		{
         // 步数没有变化,检查是否需要切换到休眠状态
         if (current_state == STATE_NORMAL)
-					{
+					{	
             uint32_t inactive_time = uwb_time_count - state_start_time_jibu;
             if (inactive_time >= INACTIVE_TIMEOUT)
 						{ // 30秒后切换到休眠状态
                 current_state = STATE_SLEEP;
+							  exercise_state=2;
 							  state_start_time_jibu=uwb_time_count;
             }
           }
@@ -748,6 +753,7 @@
 }
 extern uint32_t uwb_time_count;
 uint8_t uwbled,btled,loraled,powerled;
+uint8_t send_count=0;
 void upload_apppoll()
 {	
 	  uint32_t elapsed_time_jibu;
@@ -759,16 +765,17 @@
 				    switch(elapsed_time_jibu)
 						{
 							case UWB_OPEN_COUNT:
-//								   PCA9555_Set_One_Value_Output(BT_IRQ ,0);
-								   PCA9555_Set_One_Value_Output(IO_KONG,0);
+							     CloseUWB();					     
 								   LoraReportPoll();
-								   	
-										CloseUWB();
-                    LEDTask(0,0,0,2);							
+                   LEDTask(0,0,0,2);
+						
 							break;
 							
 							case UWB_MEASUREMENT_INTERVAL:
 							      LEDTask(uwbled,btled,loraled,powerled);
+									  PCA9555_Set_One_Value_Output(IO_KONG,0);
+							      delay_us(10000);
+							      PCA9555_Set_One_Value_Output(IO_KONG,1);	
 										CloseUWB();
 										Uwbinit();
 										OpenUWB();
@@ -782,16 +789,17 @@
 				    switch(elapsed_time_jibu)
 						{
 							case UWB_OPEN_COUNT:
-//							    	PCA9555_Set_One_Value_Output(BT_IRQ ,0);
-                    PCA9555_Set_One_Value_Output(IO_KONG,0);							
-								    CloseUWB();	
+							    	CloseUWB();	                   							
 							      LoraReportPoll();
 							      LEDTask(0,0,0,2);
+
 							break;
 							
 							case UWB_MEASUREMENT_INTERVAL_SLEEP:
 							      LEDTask(uwbled,btled,loraled,powerled);
-							      
+									  PCA9555_Set_One_Value_Output(IO_KONG,0);
+							      delay_us(10000);
+							      PCA9555_Set_One_Value_Output(IO_KONG,1);	
 										CloseUWB();
 										Uwbinit();
 										OpenUWB();											
@@ -897,11 +905,16 @@
 //		boot_deinit();
     while (1)
     { 
-		  step_count = mir3da_get_step(); // 获取步数
+			if(jibu_flag)
+			{
+				jibu_flag=0;
+		  	step_count = mir3da_get_step(); // 获取步数
+			}
+		  
 //	    Lora_Tx_Poll();
 			uwb_app_poll();
 			check_step_and_update_state();
-			upload_apppoll();
+//			upload_apppoll();
       IdleTask();
 			IMUTask();
 			

--
Gitblit v1.9.3