NTC_Tool_Feedback

本次博客介绍了一个名为Dingven的闪灯竞赛,详细解释了竞赛规则和参与方式,同时提供了联系反馈的邮箱地址。

<feedtitle>Dingven</feedtitle>

<racelamp>1</racelamp>

<doflashing>1</doflashing>

<feedback>mailto:happybasic#163.com</feedback>

uint8_t pmu_ntc_handler(uint8_t charge_sta) { uint16_t ntc_adc = 0; uint8_t ntc_flag = FALSE; static bool_t dischg_ntc_low_pro_flag; static bool_t dischg_ntc_high_pro_flag; static bool_t chg_ntc_low_pro_flag; static bool_t chg_ntc_high_pro_flag; static bool_t ntc_cold_charge_flag; static bool_t ntc_warm_charge_flag; static bool_t ntc_hot_charge_flag; #if ADC_ENABLE ntc_adc = g_vntc_adc; #else ntc_adc = NONE_NTC; #endif if (ntc_adc >= NONE_NTC) //屏蔽NTC功能,NTC浮空,屏蔽 NTC 功能,并锁定。 { return FALSE; } if (charge_sta == CHG_ON) //充电模式 { if ((ntc_adc <= JEITA_NTC_CHG_PRO_LOW_TMP) && (ntc_adc > JEITA_NTC_CHG_PRO_HIGH_TMP)) // 0C <= Temp < 60C { if (ntc_adc > JEITA_NTC_CHG_COLD_HIGH_TMP) // Temp < 10C { ntc_cold_charge_flag = TRUE; charge_cfg.constant_cur = CONSTANT_JEITA_COLD; //0.5*ICC充电 if (ntc_warm_charge_flag) { if (ntc_adc > JEITA_NTC_CHG_COLD_HYST_HIGH_TMP) // Temp < 8C, 迟滞处理 { ntc_warm_charge_flag = FALSE; } else { ntc_cold_charge_flag = FALSE; charge_cfg.constant_cur = CONSTANT_CUR_SET; } } ntc_flag = FALSE; } else if (ntc_adc <= JEITA_NTC_CHG_WARM_LOW_TMP && ntc_adc > JEITA_NTC_CHG_WARM_HIGH_TMP) // 10C <= Temp < 45C { ntc_warm_charge_flag = TRUE; charge_cfg.constant_cur = CONSTANT_CUR_SET; //1*ICC充电 if (ntc_cold_charge_flag) { if (ntc_adc < JEITA_NTC_CHG_WARM_HYST_LOW_TMP) // Temp > 12C, 迟滞处理 { ntc_cold_charge_flag = FALSE; } else { ntc_warm_charge_flag = FALSE; charge_cfg.constant_cur = CONSTANT_JEITA_COLD; //0.5*ICC充电 } } charge_cfg.vfloat = VFLOAT_SET; if (ntc_hot_charge_flag) { if (ntc_adc > JEITA_NTC_CHG_WARM_HYST_HIGH_TMP) // Temp < 42C, 迟滞处理 { ntc_hot_charge_flag = FALSE; } else { ntc_warm_charge_flag = FALSE; charge_cfg.vfloat = VFLOAT_JEITA_HOT; //浮充电压4.05V } } ntc_flag = FALSE; } else if (ntc_adc <= JEITA_NTC_CHG_HOT_LOW_TMP) // Temp >= 45C { ntc_hot_charge_flag = TRUE; charge_cfg.vfloat = VFLOAT_JEITA_HOT; //浮充电压4.05V if (ntc_warm_charge_flag) { if (ntc_adc < JEITA_NTC_CHG_HOT_HYST_LOW_TMP) // Temp > 47C, 迟滞处理 { ntc_warm_charge_flag = FALSE; } else { ntc_hot_charge_flag = FALSE; charge_cfg.vfloat = VFLOAT_SET; } } ntc_flag = FALSE; } if (chg_ntc_low_pro_flag) { if (ntc_adc < JEITA_NTC_CHG_PRO_HYST_LOW_TMP) // Temp > 3C, 迟滞处理 { chg_ntc_low_pro_flag = FALSE; ntc_flag = FALSE; } else { ntc_flag = TRUE; } } if (chg_ntc_high_pro_flag) { if (ntc_adc > JEITA_NTC_CHG_PRO_HYST_HIGH_TMP) // Temp < 57C, 迟滞处理 { chg_ntc_high_pro_flag = FALSE; ntc_flag = FALSE; } else { ntc_flag = TRUE; } } } else { if (ntc_adc > JEITA_NTC_CHG_PRO_LOW_TMP) // Temp < 0C { chg_ntc_low_pro_flag = TRUE; ntc_flag = TRUE; //不充电 } else if (ntc_adc <= JEITA_NTC_CHG_PRO_HIGH_TMP) // Temp >= 60C { chg_ntc_high_pro_flag = TRUE; ntc_flag = TRUE; //不充电 } } } else //放电模式 { if (ntc_adc <= NTC_DISCHG_PRO_LOW_TMP && ntc_adc > NTC_DISCHG_PRO_HIGH_TMP) // -10C <= Temp < 60C { if (dischg_ntc_low_pro_flag) { if (ntc_adc < NTC_DISCHG_HYST_LOW_TMP) // Temp > -7C, 迟滞处理 { dischg_ntc_low_pro_flag = FALSE; ntc_flag = FALSE; //正常放电 } else { ntc_flag = TRUE; } } if (dischg_ntc_high_pro_flag) { if (ntc_adc > NTC_DISCHG_HYST_HIGH_TMP) // Temp < 57C, 迟滞处理 { dischg_ntc_high_pro_flag = FALSE; ntc_flag = FALSE; } else { ntc_flag = TRUE; } } } else //异常不放电 { if (ntc_adc > NTC_DISCHG_PRO_LOW_TMP) // Temp < -10C { dischg_ntc_low_pro_flag = TRUE; } else if (ntc_adc <= NTC_DISCHG_PRO_HIGH_TMP) // Temp >= 60C { dischg_ntc_high_pro_flag = TRUE; } ntc_flag = TRUE; } } return ntc_flag; } 优化这个函数并给出完整示例
10-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

happybasic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值