Browse Source

标定重力分量时间改为2s, 打开看门狗, 速度变化阀值改为 2Km/h, iap 开始后不再读取加速度数据, 连续3秒读不取加速度数据重启

guoqiang 1 year ago
parent
commit
925a5cca2e
7 changed files with 37 additions and 18 deletions
  1. 2 0
      Device/adxl312.c
  2. 1 1
      Device/wdg.h
  3. 3 0
      User/IAP.c
  4. 1 0
      User/IAP.h
  5. 26 13
      User/process.c
  6. 2 2
      User/process.h
  7. 2 2
      User/protocol.c

+ 2 - 0
Device/adxl312.c

@@ -148,12 +148,14 @@ void ADXL312_Init(void)
 	
 	
 		tmp_data = ReadCmd(0x00);
+
 		while(tmp_data!=0xE5)     //判断是否器件ID正确 验证SPI通信是否正常
 		{
 			OSIF_TimeDelay(20);
 			tmp_data = ReadCmd(0x00);
 			
 		}
+
 		
 		WriteCmd(0x2E, 0x00);
 		WriteCmd(0x31, 0x0B); // 4线SPI 13bit 全分辨率 12g量程

+ 1 - 1
Device/wdg.h

@@ -40,7 +40,7 @@
 extern "C" {
 #endif
 
-//#define  WATCHDOG_ENABLE   (1)
+#define  WATCHDOG_ENABLE   (1)
 
 extern void WDG_Init(void);
 extern void WDG_Feed(void);

+ 3 - 0
User/IAP.c

@@ -49,6 +49,8 @@ static uint32_t s_writeDataBuffSeek;
 
 //升级完成后, 重启标志
 uint8_t iap_reboot = 0;
+// 
+uint8_t g_iap_start = 0;
 
 
 ///< 升级包信息
@@ -187,6 +189,7 @@ void IAP_Start(void)
     }
     s_writeAddress = APP2_ADDRESS;
     s_iapStep = 1;
+		g_iap_start = 1;
 }
 
 

+ 1 - 0
User/IAP.h

@@ -72,6 +72,7 @@ extern "C" {
 #define ResultExecErr         (8)
 
 extern uint8_t iap_reboot;
+extern uint8_t g_iap_start;
     
 extern int IAP_Init(void);
 extern void IAP_Start(void);

+ 26 - 13
User/process.c

@@ -7,6 +7,7 @@
 #include "string.h"
 #include "math.h"
 #include "cfg.h"
+#include "IAP.h"
 
 
 uint16_t	g_blinkLedTime;			/*RUN LED闪烁频率控制时间*/
@@ -112,23 +113,35 @@ void timer_callback(void)
 			g_alg_context.valveclose_delay--;
 	}
 	
-	//read acc data
-  if(0 == ADXL312_ReadAcc(&accx, &accy, &accz)){
-		cbuffer_pushdata(accx, accy, accz);
-		g_readaccfailed_count = 0;
-	}else{
-		g_readaccfailed_count++;
-		if(g_readaccfailed_count > 300){ 
-			//重启,尝度恢复加速度读取 
-			NVIC_SystemReset();
-		
-		}else if(g_readaccfailed_count > 3){
-			//运行指示灯,闪烁加快
-			g_blinkLedTgtTime = BLINK_LED_MINT;
+	//在进行IAP升级时不再读取 加速度数据。
+	if(0 == g_iap_start){
+	
+		//read acc data
+		if(0 == ADXL312_ReadAcc(&accx, &accy, &accz)){
+			cbuffer_pushdata(accx, accy, accz);
+			g_readaccfailed_count = 0;
+			//if(BLINK_LED_DFTT != g_blinkLedTgtTime){
+			//	g_blinkLedTgtTime = BLINK_LED_DFTT;
+			//}
+		}else{
+			g_readaccfailed_count++;
+			if(g_readaccfailed_count > 300){ 
+				//重启,尝度恢复加速度读取 
+				NVIC_SystemReset();
+				//重置一下传感器
+				//ADXL312_Init();
+			
+			}else if(g_readaccfailed_count > 3){
+				//运行指示灯,闪烁加快
+				g_blinkLedTgtTime = BLINK_LED_MINT;
+			}
 		}
+	
 	}
 	
 
+	
+
 }
 
 void Process_Init(void)

+ 2 - 2
User/process.h

@@ -71,7 +71,7 @@ extern uint32_t g_send_sequence;
 #define ALG_Triggering    (4)
 #define ALG_Finished    	(5)
 
-#define CALIBRATE_COUNT    (3*100)   //3ÃëÖÓ
+#define CALIBRATE_COUNT    (2*100)   //2ÃëÖÓ
 #define RUNDELAY_COUNT			(5*60*100) //5·ÖÖÓ
 
 
@@ -91,7 +91,7 @@ typedef struct _filter_avg{
 
 #define DETECT_CNT   						(400) // 4s 
 #define KEEP_CNT								(80)
-#define DETECT_THRESHOLD  			(0.7)	 //m/s   2Km/h
+#define DETECT_THRESHOLD  			(0.6)	 //m/s   2Km/h
 #define DETECT_THRESHOLD_DOWN 	(0.2) //  5Km/h
 #define MECHANICAL_NOISE_THRESHOLD  (0.015) //g 
 

+ 2 - 2
User/protocol.c

@@ -5,9 +5,9 @@
 
 
 #ifdef IS_BOOTLOADER
-uint32_t Firmware_Version[4] = {1, 0, 1, 20240312};
+uint32_t Firmware_Version[4] = {1, 0, 3, 20240328};
 #else
-uint32_t Firmware_Version[4] = {1, 1, 5, 20240125};
+uint32_t Firmware_Version[4] = {2, 1, 1, 20240328};
 #endif