mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
TSで起動不能になってしまうのを修正
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@184 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
df8bf313d6
commit
22e433f0dc
75
trunk/pm.c
75
trunk/pm.c
@ -947,45 +947,52 @@ void BT_get_left(){
|
|||||||
static u8 bt_voltage_low_count; // 電圧でシャットダウンさせる
|
static u8 bt_voltage_low_count; // 電圧でシャットダウンさせる
|
||||||
u8 temp[2];
|
u8 temp[2];
|
||||||
|
|
||||||
// 電池電圧で強制断が優先される
|
if( system_status.model == MODEL_TS_BOARD )
|
||||||
temp[0] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
|
|
||||||
if( iic_mcu_bus_status == ERR_SUCCESS )
|
|
||||||
{
|
{
|
||||||
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0];
|
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
|
||||||
if( vreg_ctr[ VREG_C_BT_VOLTAGE ] > ( 3100 / 16 / 1.25 ) )
|
|
||||||
{
|
|
||||||
bt_voltage_low_count = 0;
|
|
||||||
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp );
|
|
||||||
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
|
|
||||||
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bt_voltage_low_count += 1;
|
|
||||||
if( bt_voltage_low_count >= 4* 10 )
|
|
||||||
{
|
|
||||||
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( bt_voltage_low_count == 4* 10 ) // およそ10sec(そんなに頻繁には更新されないみたい)
|
|
||||||
{
|
|
||||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
|
||||||
}
|
|
||||||
else if( bt_voltage_low_count == 12 + 4* ( 10 + 6 ))
|
|
||||||
{ // …時間切れ。強制的に切る
|
|
||||||
system_status.pwr_state = OFF_TRIG;
|
|
||||||
renge_task_interval_run_force = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// バッテリ残量が取れなくなった!
|
// 電池電圧で強制断が優先される
|
||||||
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
|
temp[0] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
|
||||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] != 0 )
|
if( iic_mcu_bus_status == ERR_SUCCESS )
|
||||||
{
|
{
|
||||||
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
|
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0];
|
||||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
if( vreg_ctr[ VREG_C_BT_VOLTAGE ] > ( 3100 / 16 / 1.25 ) )
|
||||||
|
{
|
||||||
|
bt_voltage_low_count = 0;
|
||||||
|
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp );
|
||||||
|
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
|
||||||
|
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bt_voltage_low_count += 1;
|
||||||
|
if( bt_voltage_low_count >= 4* 10 )
|
||||||
|
{
|
||||||
|
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( bt_voltage_low_count == 4* 10 ) // およそ10sec(そんなに頻繁には更新されないみたい)
|
||||||
|
{
|
||||||
|
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||||
|
}
|
||||||
|
else if( bt_voltage_low_count == 12 + 4* ( 10 + 6 ))
|
||||||
|
{ // …時間切れ。強制的に切る
|
||||||
|
system_status.pwr_state = OFF_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// バッテリ残量が取れなくなった!
|
||||||
|
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
|
||||||
|
if( vreg_ctr[ VREG_C_BT_REMAIN ] != 0 )
|
||||||
|
{
|
||||||
|
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
|
||||||
|
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user