修复battery service timer,目前可以正常后台获取电压值
authorSnickerSun <snickersun@163.com>
Tue, 16 Jan 2024 06:55:14 +0000 (14:55 +0800)
committerSnickerSun <snickersun@163.com>
Tue, 16 Jan 2024 06:55:14 +0000 (14:55 +0800)
code/sdk/application/battery/service/battery_service.c
code/sdk/application/brandy/brandy_recovery/main.c

index d60cf2d..cb2ead3 100644 (file)
@@ -362,7 +362,7 @@ uint8_t batteryservice_get_pcb_temp(float *temp)
  * 电池电压读取逻辑:
  *      充电10秒,停止充电1秒,并读取电压。之后再开始充电10秒,再停止充电一秒,读取电压,然后再开始充电。。。。依此类推。
  * **/
-#define USE_APP_TIMER 0
+#define USE_APP_TIMER 1
 
 #include "cmsis_os2.h"
 #include "input_app.h"
@@ -386,21 +386,21 @@ static void battery_check_timer_callback(uint32_t data);
 #endif
 static void battery_timer_start_check_released(uint32_t rtc_ms)
 {
-    bool start = false;
-    if (!g_bat_timer_is_running) {
-        g_bat_timer_is_running = true;
-        start = true;
-    }
+    // bool start = false;
+    // if (!g_bat_timer_is_running) {
+    //     g_bat_timer_is_running = true;
+    //     start = true;
+    // }
 
-    if (start) {
+    
 #if USE_APP_TIMER
-        osTimerStop(g_battery_timer);
+       if (g_bat_timer_is_running)  osTimerStop(g_battery_timer);
         osTimerStart(g_battery_timer, rtc_ms);
 #else
-        uapi_rtc_stop(g_battery_timer);
-        uapi_rtc_start(g_battery_timer, rtc_ms, battery_check_timer_callback, 0);
+       if (g_bat_timer_is_running)  uapi_rtc_stop(g_battery_timer);
+        uapi_rtc_start(g_battery_timer, rtc_ms, battery_check_timer_callback, 1);
 #endif
-    }
+    g_bat_timer_is_running = true;
 }
 void do_battery_check_msg(int cmd);
 static void battery_check_and_enable_charge(void);
@@ -439,6 +439,7 @@ void uapi_battery_deinit(void)
     uapi_rtc_stop(g_battery_timer);
     uapi_rtc_delete(g_battery_timer);
 #endif
+    g_bat_timer_is_running = false;
     g_battery_timer = NULL;
 }
 
@@ -536,9 +537,10 @@ errcode_t uapi_battery_init(void)
 
 void battery_service_resume(void)
 {
+    PRINT("battery_service resume!\r\n");
     battery_check_timer_callback(0);
 }
 void battery_service_suspend(void)
 {
-
+    PRINT("battery_service suspend!\r\n");
 }
\ No newline at end of file
index 0e128ca..d0449b2 100755 (executable)
@@ -261,6 +261,7 @@ static void chip_init(void)
 
     uapi_rtc_init();
     uapi_rtc_adapter(RTC_0, RTC_0_IRQN, g_aucIntPri[RTC_0_IRQN]);
+    uapi_rtc_adapter(RTC_1, RTC_0_IRQN, g_aucIntPri[RTC_0_IRQN]);
 
     uapi_dma_init();
     uapi_dma_open();