From: penglei <1624952103@qq.com> Date: Thu, 7 Nov 2024 07:54:13 +0000 (+0800) Subject: 优化开关机读电量 添加充电状态变化寄存器打印 X-Git-Tag: fd230_release_V1.3.102~107^2~4 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=32dbf3d1b46e7cbe10af004a25239aaccc78be14;p=mirrors%2FFD230.git 优化开关机读电量 添加充电状态变化寄存器打印 --- diff --git a/code/sdk/application/battery/service/battery_driver.cpp b/code/sdk/application/battery/service/battery_driver.cpp index 7f7b9e34e..c2b20aa6b 100644 --- a/code/sdk/application/battery/service/battery_driver.cpp +++ b/code/sdk/application/battery/service/battery_driver.cpp @@ -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){ diff --git a/code/sdk/application/battery/service/battery_service.cpp b/code/sdk/application/battery/service/battery_service.cpp index 2f0a9e326..8f757e8cc 100644 --- a/code/sdk/application/battery/service/battery_service.cpp +++ b/code/sdk/application/battery/service/battery_service.cpp @@ -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); diff --git a/code/sdk/drivers/chips/brandy/porting/button/button_porting.c b/code/sdk/drivers/chips/brandy/porting/button/button_porting.c index 448e4efa5..7c607b913 100755 --- a/code/sdk/drivers/chips/brandy/porting/button/button_porting.c +++ b/code/sdk/drivers/chips/brandy/porting/button/button_porting.c @@ -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); diff --git a/code/sdk/drivers/chips/brandy/porting/include/button_porting.h b/code/sdk/drivers/chips/brandy/porting/include/button_porting.h index f43eedc35..c46926126 100755 --- a/code/sdk/drivers/chips/brandy/porting/include/button_porting.h +++ b/code/sdk/drivers/chips/brandy/porting/include/button_porting.h @@ -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.