diff --git a/trunk/pm.c b/trunk/pm.c index 031539c..a8369c2 100644 --- a/trunk/pm.c +++ b/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 ); + } } }