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; // 電圧でシャットダウンさせる
|
||||
u8 temp[2];
|
||||
|
||||
// 電池電圧で強制断が優先される
|
||||
temp[0] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
|
||||
if( iic_mcu_bus_status == ERR_SUCCESS )
|
||||
if( system_status.model == MODEL_TS_BOARD )
|
||||
{
|
||||
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0];
|
||||
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;
|
||||
}
|
||||
}
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
|
||||
}
|
||||
else
|
||||
{
|
||||
// バッテリ残量が取れなくなった!
|
||||
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] != 0 )
|
||||
// 電池電圧で強制断が優先される
|
||||
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_REMAIN ] = 0;
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0];
|
||||
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