diff --git a/snake_trunk/VCProj/bsr_trunk.sdf b/snake_trunk/VCProj/bsr_trunk.sdf index 902398d..1ee23e8 100644 Binary files a/snake_trunk/VCProj/bsr_trunk.sdf and b/snake_trunk/VCProj/bsr_trunk.sdf differ diff --git a/snake_trunk/VCProj/bsr_trunk.suo b/snake_trunk/VCProj/bsr_trunk.suo index c750838..cadc397 100644 Binary files a/snake_trunk/VCProj/bsr_trunk.suo and b/snake_trunk/VCProj/bsr_trunk.suo differ diff --git a/snake_trunk/jhl_defs.h b/snake_trunk/jhl_defs.h index 9a21ab3..2750983 100644 --- a/snake_trunk/jhl_defs.h +++ b/snake_trunk/jhl_defs.h @@ -13,7 +13,7 @@ typedef signed short sx16; #define false 0 -#define set_bit( cond, reg, pos ) \ +#define set_bit_if( cond, reg, pos ) \ { \ if( cond ){ \ reg |= pos; \ diff --git a/snake_trunk/pm.c b/snake_trunk/pm.c index 0541254..c86612f 100644 --- a/snake_trunk/pm.c +++ b/snake_trunk/pm.c @@ -185,7 +185,7 @@ static void update_chg_led() LED_CHARGE = temp_led_chg; // レジスタの充電中ビットはLEDに同期する - set_bit( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bitのみ。 + set_bit_if( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit_ifのみ。 /// 割り込みはtask_status()で行う } @@ -282,7 +282,7 @@ void bt_get_charge_status() ***********************************************/ void pm_chk_adapter() { - set_bit( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + set_bit_if( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); if( pm_extdc_old != PM_EXTDC_n ) // HAL を通すため、 PM_EXTDC_n の volatile にする心配なし { diff --git a/snake_trunk/task_status.c b/snake_trunk/task_status.c index 361497b..0de3bf4 100644 --- a/snake_trunk/task_status.c +++ b/snake_trunk/task_status.c @@ -37,7 +37,7 @@ void tsk_status( ) u8 diff; // 蓋開けチェック - set_bit( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); + set_bit_if( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); // ステータスレジスタ関係 → 割り込み // // pm.c で、その場で行います。 diff --git a/snake_trunk/task_sys.c b/snake_trunk/task_sys.c index 7c222c9..ba035b5 100644 --- a/snake_trunk/task_sys.c +++ b/snake_trunk/task_sys.c @@ -201,6 +201,13 @@ void tsk_sys( ) LED_CAM = 0; i2c_mcu_time_out_error = false; #endif + + /// ここでやるべきでは? + // プルアップon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + IIC_ctr_Init( ); IIC_twl_Init( ); @@ -222,15 +229,24 @@ void tsk_sys( ) // PMK21 = 0; // wifi 使わない PMK6 = 0; // pm_irq - // リブート時、ステータスを何となく更新 + // リブート時、ステータスを何となく更新、辻褄合わせ if( system_status.reboot ) { u8 bl_status_temp; + // LCD 電源ステータス + /// ファーム更新時、必ず液晶offかも? + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + vreg_ctr[ VREG_C_STATUS ] |= REG_BIT_LCD_POW; + LCD_AMOL_HV_CTRL = 1; + } + + // バックライトが点いていたなら点ける bl_status_temp = read_pmic( PM_REG_ADRS_BL ); vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); - set_bit( ( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ), - vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW ); + + // バッテリ&本体識別 BT_chk(); }