2.33 異常終了時、アモルファスLCD電源を切り忘れていた。

read_pmic() が、通信異常時に不定値を返していた。そもそも通信異常が無い前提のコードだが、0xff を返すようにしておく。

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@577 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
n2232 2013-12-12 08:27:17 +00:00
parent ac85094962
commit f5d3581e4a
6 changed files with 18 additions and 16 deletions

Binary file not shown.

Binary file not shown.

View File

@ -7,7 +7,7 @@
*/
#define MCU_VER_MAJOR 0x02
#define MCU_VER_MINOR 0x32
#define MCU_VER_MINOR 0x33
// ビルドスイッチ

View File

@ -143,6 +143,10 @@ u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs )
u8 dat;
iic_mcu_result = iic_mcu_read( SLA, adrs, 1, &dat );
if( iic_mcu_result != I2C_ERR_OK )
{
dat = 0xff;
}
return ( dat );
}

View File

@ -875,7 +875,8 @@ err PM_LCD_on( )
void PM_LCD_off()
{
// BLついてたら消す。// チェックするのは割り込みの関係
// BLついてたら消す。
// チェックするのは割り込みの関係
if( ( read_pmic( PM_REG_ADRS_BL ) & 0x03 ) != 0 )
{
u8 tot;
@ -895,8 +896,8 @@ void PM_LCD_off()
}
// 50msとか待つし、確認しましょうかね…
// LCD 電源落とす
// 50ms も wait あるので点いてるか確認する
if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 )
{
PM_TCOM_off();
@ -907,7 +908,7 @@ void PM_LCD_off()
if( system_status.LCD_is_CGS == false )
{
// アモルファスならポート操作
SPFL_LCD_AMOL_HV_CONT = 0; // 他のファミリでもL縛りなので弊害なし
SPFL_LCD_AMOL_HV_CONT = 0; // 他のファミリでもL縛りなので弊害なしだが。
wait_ms( 10 ); // アモルファス15Vを切ったときのウェイト。
}
@ -915,7 +916,7 @@ void PM_LCD_off()
vreg_ctr[VREG_C_STATUS] &= ~REG_BIT_LCD_POW;
}
set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF ); // 無条件に発生。マスク無ければ。
set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF ); // 無条件に発生。(マスクは有効)
}
@ -1110,16 +1111,12 @@ void reset_release()
***********************************************/
void PM_sys_pow_off( )
{
// if( RESET1_n )
if( PM_chk_LDSW() )
{
// 異常終了でないとき
PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF );
PM_LCD_off(); // TCOM,VCS OFF も消してきます。
wait_ms( 20 );
// 一応 LCD 関係消すのを試みる。
PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF );
PM_LCD_off(); // 消えてれば何もしない
wait_ms( 20 );
PM_reset_ast();
}
PM_reset_ast();
RESET2_ast;
FCRAM_RST_ast;
@ -1128,7 +1125,6 @@ void PM_sys_pow_off( )
PM_off( );
PM_LDSW_off( );
}

View File

@ -406,6 +406,8 @@ void tsk_sys( )
system_status.poweron_reason = NONE;
pwsw_timeout = 0;
SPFL_LCD_AMOL_HV_CONT = 0; // 異常終了時、アモルファスLCD用電源を切り忘れてしまう
if( !PM_EXTDC_n
|| chg_led_override != 0 ) // これがゼロになるまで待つ