优化开关机读电量 添加充电状态变化寄存器打印
authorpenglei <1624952103@qq.com>
Thu, 7 Nov 2024 07:54:13 +0000 (15:54 +0800)
committerpenglei <1624952103@qq.com>
Thu, 7 Nov 2024 07:54:13 +0000 (15:54 +0800)
code/sdk/application/battery/service/battery_driver.cpp
code/sdk/application/battery/service/battery_service.cpp
code/sdk/drivers/chips/brandy/porting/button/button_porting.c
code/sdk/drivers/chips/brandy/porting/include/button_porting.h

index 7f7b9e3..c2b20aa 100644 (file)
@@ -278,8 +278,11 @@ static battery_info_t current_battery_info={0};
 
 static uint8_t cur_percent = 0;
 
+static uint8_t percernt_installized = 0;
+
 void battery_percent_init(uint8_t percent)
-{
+{ 
+    percernt_installized = 1;
     history_percent = percent;
 }
 
@@ -433,7 +436,7 @@ static int battery_get_percent_by_voltage(float voltage)
                     break;
                 }
                 //电量均匀增加
-                else if(percent > history_percent)
+                else if(percent > history_percent && history_percent)
                 {
                     history_percent++;
                     percent = history_percent;
@@ -582,7 +585,10 @@ static bool adc_get_sample_result(float *voltage, uint8_t channel)
     {
         *voltage = adc_trans_systick_to_battery_voltage(stick);
         get_avg_voltage(voltage);
-        cur_percent = battery_get_percent_by_voltage(*voltage);
+        if(percernt_installized)
+        {
+            cur_percent = battery_get_percent_by_voltage(*voltage);
+        }
         // PRINT("cur_percent : %d , history_percent : %d \n",cur_percent,history_percent);
     }
     else if (channel == 0){
index 2f0a9e3..8f757e8 100644 (file)
@@ -45,6 +45,8 @@ extern "C" {
 
 #include "cywee_service.h"
 
+// #define CHARGE_REG_LOG
+
 bool batteryservice_get_voltage_by_channel(float *voltage, uint8_t channel);
 battery_info_t *get_current_battery_info(void);
 static bool g_batter_service_initialled = false;
@@ -377,6 +379,9 @@ static void battery_check_task(void *arg)
                 
             }
         }else if (mail.comm.event == BATTERY_CMD_CHARGE_PLUG) {
+#ifdef CHARGE_REG_LOG
+            uapi_get_charge_reg_log();
+#endif
             // PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI plugged \n");
             oncharging_status = 1;
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_ONCHARGING_CHANGE,&oncharging_status);
@@ -384,6 +389,9 @@ static void battery_check_task(void *arg)
             battery_check_chargement();
             charger_plug_event_ui_sendmsg_toUI(1);
         }else if (mail.comm.event == BATTERY_CMD_CHARGE_UNPLUG) {
+#ifdef CHARGE_REG_LOG
+            uapi_get_charge_reg_log();
+#endif
             // PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI unplugged \n");
             oncharging_status = 0;
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_ONCHARGING_CHANGE,&oncharging_status);
index 448e4ef..7c607b9 100755 (executable)
@@ -231,7 +231,12 @@ errcode_t uapi_register_charger_event_callback(charger_plug_event_callback_func_
     return ERRCODE_SUCC;
 }
 
-bool  uapi_get_charger_plug_status(void)
+void uapi_get_charge_reg_log(void)
+{
+    printf("uapi_get_charger_plug_status reg32_getbit(0x5702C034, 2) %d \r\n",reg32_getbit(0x5702C034, 2));
+}
+
+bool uapi_get_charger_plug_status(void)
 {
 
     uint32_t charge_stat =  reg32_getbit(0x5702C034, 2);
index f43eedc..c469261 100755 (executable)
@@ -94,7 +94,8 @@ uint64_t uapi_ulp_systick_get_count(void);
 uint64_t uapi_ulp_systick_get_ms(void);
 
 errcode_t uapi_register_charger_event_callback(charger_plug_event_callback_func_t callback);
-bool  uapi_get_charger_plug_status(void);
+bool uapi_get_charger_plug_status(void);
+void uapi_get_charge_reg_log(void);
 
 /**
  * @brief  RC32K clock calibration. Do not call this API when the clock is in use.