在BMT.C中模拟一个充电器的插入时,发一个BMT_sendMes2UEM(BMT_USB_CHARGER_IN),...
ROMan">
光辉,请问一下,在BMT.C中模拟一个充电器的插入时,发一个BMT_sendMes2UEM(BMT_USB_CHARGER_IN),为什么UEM层不接受此消息? 回复光辉岁月—驱动 18:12:46 做双电池? 回复超越无限 18:12:52 呵呵,是的 超越无限 18:14:09 现在碰到一个问题,在副电池充满的情况切换到主电充电,图标切不过去 回复光辉岁月—驱动 18:14:18 哦 回复光辉岁月—驱动 18:14:47 #ifdef __DOUBLE_Battery__ /*充电的过程中,拔出当前正在充电的电池时,就调用此函数*/ void Chring_battery_out(void) { if((Vbat2_Exist_First == KAL_FALSE) && (Vbat1_Exist_First == KAL_FALSE)) { return ; } if(Vbat2_Exist_First == KAL_TRUE) {/*电池1拔出,并且电池2是存在的*/ stack_stop_timer(&ChargeTimeout_timer); Use_Battery_Sel(Manual_Mode, battery2); g_chr.chring_battery = chring_battery2; Send_Chr_battery_id(g_chr.chring_battery); bmt_stop_stoptimer(); BMT_sendMes2UEM(PMIC_DOUBLE_BATTERY_CHARGER_IN); bmt_charge_start(); } if(Vbat1_Exist_First == KAL_TRUE) {/*电池2拔出,并且电池1是存在的*/ stack_stop_timer(&ChargeTimeout_timer); Use_Battery_Sel(Manual_Mode, battery1); g_chr.chring_battery = chring_battery1; Send_Chr_battery_id(g_chr.chring_battery); bmt_stop_stoptimer(); BMT_sendMes2UEM(PMIC_DOUBLE_BATTERY_CHARGER_IN); bmt_charge_start(); } } #endif回复光辉岁月—驱动 18:15:24
#ifdef __DOUBLE_BATTERY__ if(Read_BATTERY_Sel() == use_battery2) { #ifdef __CHR_DEBUG__ kal_prompt_trace(MOD_BMT,"CHR_BATTERY == chr_battery2 Battery_Full"); #endif Chr_bat2_status=Battery_Full; if(Vbat1_Exist_First == KAL_FALSE) {/*当电池2充满后,电池1不存在*/ BMT.highfull = 1; } } else if(Read_BATTERY_Sel() == use_battery1) { #ifdef __CHR_DEBUG__ kal_prompt_trace(MOD_BMT,"CHR_BATTERY == chr_battery1 Battery_Full"); #endif Chr_bat1_status = Battery_Full; if(Vbat2_Exist_First == KAL_FALSE) {/*当电池1充满后,电池2不存在*/ BMT.highfull = 1; } } if((Chr_bat1_status == Battery_Full) && (Chr_bat2_status == Battery_Full)) { /*两块电池都充满*/ #ifdef __CHR_DEBUG__ kal_prompt_trace(MOD_BMT,"CHR_BATTERY == All_Battery_Full"); #endif Use_Battery_Sel(Auto_Mode, battery2); /*两块电板都充满电时,就切换到自动模式*/ BMT.highfull = 1; /*这样只能在两个电池都充满时,才发送充满的消息*/ //BMT_sendMes2UEM(BMT_CHARGE_COMPLETE); #if 0 /*保证在充电器插入的情况下,能在次充电*/ Chr_bat1_status = Battery_Empty; Chr_bat2_status = Battery_Empty; #endif }else
{ /*在电池没有充过电时,且电量不低于2.5V时才可以去充电*/ if((Chr_bat1_status==Battery_Empty) && (Vbat1_Exist_First == KAL_TRUE)) {/*第一块电池启动充电*/ #ifdef __CHR_DEBUG__ kal_prompt_trace(MOD_BMT,"Chr_bat1_status==Battery_Empty"); #endif #ifdef __MTK_TARGET__ if(pmic_adpt_is_chr_valid())/*check if it's a valid charger*/ #endif //__MTK_TARGET__ { BMT_sendMes2UEM(BMT_CHARGE_COMPLETE); stack_stop_timer(&ChargeTimeout_timer); Use_Battery_Sel(Manual_Mode, battery1); g_chr.chring_battery = chring_battery1; Send_Chr_battery_id(g_chr.chring_battery); bmt_stop_stoptimer(); BMT_sendMes2UEM(PMIC_DOUBLE_BATTERY_CHARGER_IN); bmt_charge_start(); kal_prompt_trace(MOD_BMT,"My AC IN and start charge!"); return ; } } else if((Chr_bat2_status==Battery_Empty) && (Vbat2_Exist_First == KAL_TRUE)) {/*第二块电池启动充电*/ #ifdef __CHR_DEBUG__ kal_prompt_trace(MOD_BMT,"Chr_bat2_status==Battery_Empty"); #endif #ifdef __MTK_TARGET__ if(pmic_adpt_is_chr_valid())/*check if it's a valid charger*/ #endif //__MTK_TARGET__ { BMT_sendMes2UEM(BMT_CHARGE_COMPLETE); stack_stop_timer(&ChargeTimeout_timer); Use_Battery_Sel(Manual_Mode, battery2); g_chr.chring_battery = chring_battery2; Send_Chr_battery_id(g_chr.chring_battery); bmt_stop_stoptimer(); BMT_sendMes2UEM(PMIC_DOUBLE_BATTERY_CHARGER_IN); bmt_charge_start(); kal_prompt_trace(MOD_BMT,"My AC IN and start charge!"); return ; } } } #endif //__DOUBLE_BATTERY__ 回复光辉岁月—驱动 18:15:38 以前写的,你参考一下超越无限 18:17:03
回复
超越无限 18:17:07
回复
光辉岁月—驱动 18:17:19
双电池很麻烦的
回复
超越无限 18:17:25
我先参考一下,多谢光辉
回复
光辉岁月—驱动 18:17:30
好的
回复
超越无限 18:17:38
是呀,做了10多天了
回复
光辉岁月—驱动 18:17:54
这个要MMI的一起做的
回复
光辉岁月—驱动 18:18:10
你要跟MMI说出你的思路,然后MMI配合一起做
回复
光辉岁月—驱动 18:18:39
而且和硬件关系很大,如果硬件没有设计很好,你会很难做的.
回复
超越无限 18:19:04
现在麻烦的是,我们只用了一个内部ADC和一个外部ADC
回复
超越无限 18:19:16
所以,永不断电是无法做了
回复
光辉岁月—驱动 18:19:42
这个还要看你的硬件了..以前我们做的,硬件上不可能做到不断电
回复
光辉岁月—驱动 18:19:56
有自动和手动功能
回复
光辉岁月—驱动 18:20:04
后来我们去掉了手动功能了
回复
超越无限 18:20:20
不断电应该要加中断才能完成,而且必须加个大电容
回复
光辉岁月—驱动 18:20:52
中断响应太慢了,我试过加1000UF的电容都没用的
回复
光辉岁月—驱动 18:20:55
还是会掉,
回复光辉岁月—驱动 18:21:08 中断响应没有硬件响应快 回复光辉岁月—驱动 18:21:16 除非你是硬件切 回复超越无限 18:21:35 我们现在第二版打算加一个100U的电容 回复光辉岁月—驱动 18:21:49 没一点用,一样掉 回复光辉岁月—驱动 18:21:55 你不信可以试一下 回复超越无限 18:22:12 呵呵,硬件工程师说要ns级才行 我说中断至少也是us级 回复光辉岁月—驱动 18:22:12 如果不掉,你在打电话时,或是MP3时也还是会掉的 回复光辉岁月—驱动 18:22:19 是的, 回复光辉岁月—驱动 18:22:28 我们的MTK中断没有哪么快 回复光辉岁月—驱动 18:22:38 我当时想了很多方法都不行 回复光辉岁月—驱动 18:22:57 这个你们还是在硬件上想方法比较好