From 41c448cf1c6ada884212eb10218a6ecba8203e35 Mon Sep 17 00:00:00 2001 From: fujita_ryohei Date: Thu, 26 Nov 2009 00:31:25 +0000 Subject: [PATCH] =?UTF-8?q?TWL=E3=81=AEI2C=E9=80=9A=E4=BF=A1=E3=81=AB?= =?UTF-8?q?=E9=96=93=E3=81=AB=E5=90=88=E3=82=8F=E3=81=AA=E3=81=84=E3=81=93?= =?UTF-8?q?=E3=81=A8=E3=81=8C=E3=81=82=E3=82=8B=E3=81=AE=E3=81=A7=E3=82=AF?= =?UTF-8?q?=E3=83=AD=E3=83=83=E3=82=AF=E3=82=92=E5=80=8D=E9=80=9F=E3=81=AB?= =?UTF-8?q?=E3=80=82=20=E3=80=80=E3=83=87=E3=83=BC=E3=82=BF=E3=82=B7?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=81=A7=E3=81=AF=E4=BD=BF=E3=81=86=E3=81=AA?= =?UTF-8?q?=E3=81=A8=E6=9B=B8=E3=81=84=E3=81=A6=E3=81=82=E3=81=A3=E3=81=9F?= =?UTF-8?q?=E3=81=8C=E3=80=81=E3=83=A1=E3=83=BC=E3=82=AB=E3=83=BC=E3=81=AB?= =?UTF-8?q?=E5=95=8F=E3=81=84=E5=90=88=E3=82=8F=E3=81=9B=E3=81=9F=E3=82=89?= =?UTF-8?q?99.9999%=E5=A4=A7=E4=B8=88=E5=A4=AB=E3=80=81=E3=81=A8=E3=81=AE?= =?UTF-8?q?=E4=BA=8B=E3=80=82=E3=83=BB=E3=83=BB=E3=83=BB=E3=80=82=20I2C=5F?= =?UTF-8?q?m=E3=81=AE=E4=BF=AE=E6=AD=A3=20=E3=80=80=E5=88=9D=E6=9C=9F?= =?UTF-8?q?=E5=8C=96=E6=99=82=E3=81=AB=E3=83=80=E3=83=9F=E3=83=BC=E3=81=A7?= =?UTF-8?q?9=E3=82=AF=E3=83=AD=E3=83=83=E3=82=AF=E9=80=81=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E5=BE=8C=E3=81=AB=E3=82=A8=E3=83=A9=E3=83=BC=E3=83=95?= =?UTF-8?q?=E3=83=A9=E3=82=B0=E3=81=AE=E5=88=9D=E6=9C=9F=E5=8C=96=E3=82=92?= =?UTF-8?q?=E5=BF=98=E3=82=8C=E3=81=A6=E3=81=84=E3=81=9F=20=E3=80=80?= =?UTF-8?q?=E2=86=92=E5=88=9D=E6=9C=9F=E5=8C=96=E5=BE=8C=E6=9C=80=E5=88=9D?= =?UTF-8?q?=E3=81=AE=E9=80=9A=E4=BF=A1=EF=BC=88=E9=9B=BB=E6=B1=A0=E6=AE=8B?= =?UTF-8?q?=E9=87=8FIC=EF=BC=89=E3=81=A8=E9=80=9A=E4=BF=A1=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=81=9A=E3=81=AB=E3=81=84=E3=81=9F=E3=80=82=20?= =?UTF-8?q?=E3=82=BF=E3=82=B9=E3=82=AF=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0?= =?UTF-8?q?=E3=81=AE=E9=80=90=E6=AC=A1=E8=B5=B7=E5=8B=95=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20=E3=80=80=E6=94=B9=E8=89=AF=E3=81=AB=E3=81=AA?= =?UTF-8?q?=E3=81=A3=E3=81=A6=E3=82=8B=E3=81=AE=E3=81=8B=EF=BC=9F=20?= =?UTF-8?q?=E3=82=BB=E3=83=AC=E3=82=AF=E3=83=88=E6=8A=BC=E3=81=97=E3=81=AA?= =?UTF-8?q?=E3=81=8C=E3=82=89=E8=B5=B7=E5=8B=95=E3=81=A7=E3=83=90=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=83=A9=E3=82=A4=E3=83=88=E3=81=AE=E5=BC=B7=E5=88=B6?= =?UTF-8?q?=E7=82=B9=E7=81=AF=E5=BE=A9=E6=B4=BB=20=E3=80=80=E3=83=80?= =?UTF-8?q?=E3=82=A4=E3=83=AC=E3=82=AF=E3=83=88=E3=83=96=E3=83=BC=E3=83=88?= =?UTF-8?q?=E6=99=82=E3=81=AB=E5=9B=B0=E3=82=8B=E3=81=AE=E3=81=A7...?= =?UTF-8?q?=E3=80=80=E9=81=8B=E3=81=8C=E6=82=AA=E3=81=84=E3=81=A8=E3=82=B7?= =?UTF-8?q?=E3=83=A3=E3=83=83=E3=83=88=E3=83=80=E3=82=A6=E3=83=B3=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=81=93=E3=81=A8=E3=82=82=E3=81=82=E3=82=8A=E5=BE=97?= =?UTF-8?q?=E3=82=8B=20TWL=E3=81=AB=E5=89=B2=E3=82=8A=E8=BE=BC=E3=81=BF?= =?UTF-8?q?=E3=82=92=E5=85=A5=E3=82=8C=E3=82=8B=E3=81=AE=E3=82=92=E9=96=93?= =?UTF-8?q?=E9=81=95=E3=81=88=E3=81=A6=E3=81=84=E3=81=9F=E3=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@31 013db118-44a6-b54f-8bf7-843cb86687b1 --- trunk/accero.c | 5 +- trunk/config.h | 3 +- trunk/i2c_mcu.c | 2 + trunk/pm.c | 18 ++--- trunk/renge/renge.c | 155 +++++++++++++++--------------------------- trunk/task_debug.c | 2 + trunk/task_sys.c | 2 + trunk/user_define.h | 1 - trunk/vreg_ctr.c | 22 ++++-- trunk/vreg_ctr.h | 7 +- trunk/yav_mcu_bsr.plg | 22 +----- trunk/yav_mcu_bsr.pri | 91 ++++++++++++++++--------- trunk/yav_mcu_bsr.prk | 43 ++++-------- trunk/yav_mcu_bsr.sdb | 31 +++++---- 14 files changed, 175 insertions(+), 229 deletions(-) diff --git a/trunk/accero.c b/trunk/accero.c index 8c2834c..f5be0b4 100644 --- a/trunk/accero.c +++ b/trunk/accero.c @@ -88,6 +88,7 @@ task_status_immed tsk_cbk_accero( ) static u16 acc_norm[3]; // 加速度の大きさのヒストリ。数字が大きい方が古い static u8 direction; // (0)極大を待つか (1)極小を待つか static u16 interval; // 山と谷の間の時間。短すぎても長すぎてもはじく。 + static u16 interval_hh; // 山-山間の時間。短過ぎたらはじく。 u16 sx16 = abs( (u16)vreg_ctr[VREG_C_ACC_XH] * 256 + vreg_ctr[VREG_C_ACC_XL] ); u16 sy16 = abs( (u16)vreg_ctr[VREG_C_ACC_YH] * 256 + vreg_ctr[VREG_C_ACC_YL] ); @@ -188,13 +189,13 @@ task_status_immed acc_hosu_set( ) iic_mcu_read_a_byte( IIC_SLA_ACCEL, ACC_REG_WHOAMI ); if( iic_mcu_bus_status == ERR_NOSLAVE ) { - vreg_ctr[ VREG_C_STATUS_1 ] |= 0x02; + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR; #ifdef _MCU_BSR_ // PMK23 = 1; #endif return ( ERR_SUCCESS ); // とりあえず、タスクは削除しなくてはならない }else{ - vreg_ctr[ VREG_C_STATUS_1 ] &= ~0x02; + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_ACCERO_ERR; } diff --git a/trunk/config.h b/trunk/config.h index 8639d0e..a748c5b 100644 --- a/trunk/config.h +++ b/trunk/config.h @@ -3,13 +3,12 @@ #define _debug_ // #define _debug_led_ -//#define _VREG_C_NEW_ #define MCU_VER_MAJOR 0; #define MCU_VER_MINOR 9; -//#define _OVERCLOCK_ +#define _OVERCLOCK_ //#define _PARRADIUM_ //#define _MODEL_TEG2_ diff --git a/trunk/i2c_mcu.c b/trunk/i2c_mcu.c index a114965..df7e302 100644 --- a/trunk/i2c_mcu.c +++ b/trunk/i2c_mcu.c @@ -677,6 +677,8 @@ void iic_mcu_start( ) while( IICIF10 == 0 ){} // 通信中 iic_mcu_send_sp(); + SIR02 = SSR02; + iic_mcu_initialized = 1; } diff --git a/trunk/pm.c b/trunk/pm.c index 20d9a04..425bdc3 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -78,11 +78,10 @@ void PM_init( ) }dat_16; wait_ms( 150 ); -#if 0 + // -1. なんかおかしい… リセットをかけてみる dat_16._u16 = swap_endian_16( 0x5400 ); // reset iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16.chars.lsb ); -#endif // 0. バッテリ残量IC クイックスタート dat_16._u16 = swap_endian_16( 0x4000 ); // quick start @@ -330,16 +329,10 @@ void PM_LCD_off( ) err PM_BL_set( u8 ) { wait_ms( 10 ); -#ifdef _VREG_C_NEW_ vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & ~( REG_BIT_BL_U | REG_BIT_BL_L ) | ( command_bl_set & REG_BIT_CMD_BL_U_ON )? REG_BIT_BL_U | ( command_bl_set & REG_BIT_CMD_BL_L_ON )? REG_BIT_BL_L ); - - -#else - vreg_ctr[VREG_C_STATUS] |= REG_BIT_BL; -#endif return ( PM_chk_LDSW( ) ); } @@ -440,7 +433,7 @@ err PM_BL_set( u8 dat ) else if(( dat & REG_BIT_CMD_BL_L_OFF ) != 0 ) { blset &= ~PM_REG_BIT_BL_L; - regset |= REG_BIT_BL_U_ON; + regset |= REG_BIT_BL_L_OFF; } // Write @@ -461,7 +454,7 @@ err PM_BL_set( u8 dat ) while( !IRQ0 && ( ++tot != 0 ) ){;} IRQ0_ast; } - + return( ERR_SUCCESS ); // ここでは異常チェック不要 } @@ -575,7 +568,7 @@ err PM_sys_pow_on( ) } vreg_ctr[VREG_C_BT_REMAIN] = temp; - PM_reset_neg( ); + RESET1_neg; RESET2_neg; FCRAM_RST_neg; wait_ms( 100 ); @@ -864,13 +857,14 @@ static void PM_get_batt_left(){ vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1]; // todo 閾値を超えたら割り込み } + + vreg_ctr[ VREG_C_BT_VOLTAGE ] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL ); } else { vreg_ctr[ VREG_C_BT_REMAIN ] = 99; } - // PMIC-NTRに電池残量を教えてあげる iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_BT, diff --git a/trunk/renge/renge.c b/trunk/renge/renge.c index 237fd84..a6371b4 100644 --- a/trunk/renge/renge.c +++ b/trunk/renge/renge.c @@ -14,9 +14,8 @@ #include "renge_task_intval.h" #include "renge_task_immediate.h" - #include "..\WDT.h" - +#include "..\config.h" //****************************************************************************** bit renge_flg_interval; @@ -34,7 +33,7 @@ extern system_status_ system_status; //****************************************************************************** static void renge_task_immed_init(); -static void renge_task_immed_del( u8 ); +static void renge_task_immed_del(); @@ -100,7 +99,7 @@ err renge_task_interval_run(){     それ以外 次のタイミングでまた実行 *****************************************************************************/ -#define IMMED_RSV_TASKS_NUM 15 +#define IMMED_RSV_TASKS_NUM 10 task_immed tasks_immed[ IMMED_RSV_TASKS_NUM ]; // タスクへのポインタの配列 u8 task_immed_index = 0; @@ -110,15 +109,14 @@ u8 task_immed_index = 0; **************************************/ void renge_task_immed_init(){ /* - グローバルなメモリはスタートアップルーチンで - 0に初期化されてるので。 - */ + グローバルなメモリはスタートアップルーチンで0に初期化される u8 i; for( i = 0; i < IMMED_RSV_TASKS_NUM; i++ ){ tasks_immed[ i ] = (void *)0; } task_immed_index = 0; + */ } @@ -136,121 +134,67 @@ static u8 lock = 0; } lock = 1; - // 最終的にはチェック不要になる - /// 手動でタスクの数を数えなさい、という意味ですが。 - if( task_immed_index >= IMMED_RSV_TASKS_NUM ){ - // タスクの登録領域が足りなかった - while(1){ - NOP(); // アサートで止めたいのですが。 - } - lock = 0; - EI(); - return( ERR_ERR ); - - }else{ - - // 同じタスクの多重登録を避ける + // 末尾の連続した空き領域の先頭でかつ、 + // 重複登録を避ける { - u8 temp; - for( temp = 0; temp < task_immed_index; temp += 1 ){ - if( tasks_immed[ temp ] == new_task ){ -// while(1){ + u8 i; + u8 place; + + for( i = place = 0; i < IMMED_RSV_TASKS_NUM; i += 1 ) + { + if( tasks_immed[ i ] != ( void * )0 ) + { + place = i+1; + } + if( tasks_immed[ i ] == new_task ) // 重複登録 + { + // while(1){ NOP(); // アサートで止めたい -// } + // } lock = 0; EI(); return( ERR_ERR ); } - } - } - -#if 0 - // 登録した領域はすでに使用済みだった(管理に不整合) - if( tasks_immed[ task_immed_index ] != 0 ){ - while(1){ - NOP(); - } - } - - // タスク追加 - tasks_immed[ task_immed_index ] = new_task; - // タスクリストの最後に追加するはずなのに、最後じゃなかった - if( tasks_immed[ task_immed_index+1 ] != 0 ){ - while(1){ - NOP(); - } - } - // tasks_immed[ task_immed_index+1 ] = 0; -#endif - - // タスク登録 - { - u8 i; - for( i = 0; i < IMMED_RSV_TASKS_NUM; i += 1 ){ - if( tasks_immed[ i ] == 0 ){ - tasks_immed[ i ] = new_task; - break; } - } - task_immed_index += 1; + if( place < IMMED_RSV_TASKS_NUM ) + { + tasks_immed[ place ] = new_task; + } + else + { // タスク登録しすぎ(無いはず + // while(1){ + NOP(); // アサートで止めたい + // } + lock = 0; + EI(); + return( ERR_ERR ); + } } - // タスクリストの整合性チェック - { - u8 j; - u8 k = 0; - for( j = 0; j < ( IMMED_RSV_TASKS_NUM -1); j += 1 ){ - if( tasks_immed[ j ] != 0 ){ - k += 1; - } - } - if( k != task_immed_index ){ - while(1){ - NOP(); - } - } - } lock = 0; EI(); return( ERR_SUCCESS ); - } - while(1){ - NOP(); - } } /************************************** **************************************/ -static void renge_task_immed_del( u8 task_id ){ - u8 i; +static void renge_task_immed_del(){ + u8 i,j; // 指定タスクの削除と、リスト前詰め - for( i = task_id; - (( tasks_immed[ i ] != (void*)0 ) && ( i < IMMED_RSV_TASKS_NUM )); - i += 1 ){ - tasks_immed[ i ] = tasks_immed[ i+1 ]; - } - task_immed_index -= 1; - -#if 0 - // 整合性チェック + for( i = j = 0; j < IMMED_RSV_TASKS_NUM-1; ) { - u8 j; - u8 k = 0; - for( j = 0; j < ( IMMED_RSV_TASKS_NUM -1); j += 1 ){ - if( tasks_immed[ j ] != 0 ){ - k += 1; + if( tasks_immed[ i ] == (void *)0 ) + { + tasks_immed[ i ] = tasks_immed[ ++j ]; + tasks_immed[ j ] = (void *)0; } - } - while( k != task_immed_index ){ - NOP(); - } + i += 1; + j += 1; } -#endif - } @@ -267,14 +211,17 @@ err renge_task_immed_run(){ for( task_id = 0; task_id < IMMED_RSV_TASKS_NUM; task_id += 1 ){ if( tasks_immed[ task_id ] != 0 ){ if( tasks_immed[ task_id ]() == ERR_FINISED ){ - DI(); - renge_task_immed_del( task_id ); - task_id -= 1; // ↑でリストを前詰めするので帳尻あわせが必要 todo - EI(); + tasks_immed[ task_id ] = (void*)0; } } } + DI(); + renge_task_immed_del(); + EI(); + + // さらに登録されたり、再度実行の場合 + // todo エラー繰り返しまくりだと困る for( task_id = 0; task_id < IMMED_RSV_TASKS_NUM; task_id += 1 ){ if( tasks_immed[ task_id ] != 0 ){ i += 1; @@ -333,7 +280,11 @@ void wait_ms( u8 ms ){ // まだ適当です! while( ms != 0 ){ ms--; +#ifdef _OVERCLOCK_ + fine = 860; +#else fine = 430; +#endif while( fine != 0 ){ fine -= 1; } diff --git a/trunk/task_debug.c b/trunk/task_debug.c index 0b92610..ae4fdb2 100644 --- a/trunk/task_debug.c +++ b/trunk/task_debug.c @@ -27,6 +27,8 @@ void tsk_debug( ) if( !SW_SEL_n ){ } + PM_LCD_on(); + PM_BL_set( REG_BIT_CMD_BL_U_ON | REG_BIT_CMD_BL_L_ON ); // vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x03; // renge_task_immed_add( acc_hosu_set ); diff --git a/trunk/task_sys.c b/trunk/task_sys.c index 7be75fb..6242623 100644 --- a/trunk/task_sys.c +++ b/trunk/task_sys.c @@ -225,6 +225,8 @@ void tsk_sys( ) timeout = 0; system_status.pwr_state = BT_CHARGE; + SW_pow_count = 0; + SW_wifi_count = 0; // no break // case BT_CHARGE: diff --git a/trunk/user_define.h b/trunk/user_define.h index e12c312..bc5eacf 100644 --- a/trunk/user_define.h +++ b/trunk/user_define.h @@ -43,7 +43,6 @@ #ifdef _PMIC_TWL_ #define PM_TEG_PWSW P7.5 // TEGのみ #define PM_TEG_LCD_dis( val ) ( P7.6 = val ) // TEGのみ -#define SLP_O P7.7 #else diff --git a/trunk/vreg_ctr.c b/trunk/vreg_ctr.c index 5488a75..2d03cb8 100644 --- a/trunk/vreg_ctr.c +++ b/trunk/vreg_ctr.c @@ -99,15 +99,15 @@ void vreg_ctr_write( u8 adrs, u8 data ) { // TWLに割り込みを入れる /// 実際に割り込みを入れるのはSoC - vreg_twl[REG_TWL_INT_ADRS_IRQ] = ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_TWL_IRQ_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det - vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_TWL_IRQ_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req + vreg_twl[REG_TWL_INT_ADRS_IRQ] = ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_SEND_TWL_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det + vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_SEND_TWL_RESET_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req - vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_TWL_IRQ_OFF ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req + vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_SEND_TWL_OFF_DET ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req - vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_TWL_IRQ_BT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low - vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_TWL_IRQ_BT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty + vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_SEND_TWL_BATT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low + vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_SEND_TWL_BATT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty - vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_TWL_IRQ_VOL_CHANGE ) != 0 ) ? REG_BIT_TWL_IRQ_VOL_CHANGE : 0x00; //vol_changed + vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( vreg_ctr[VREG_C_COMMAND1] & REG_BIT_SEND_TWL_VOL_CLICK ) != 0 ) ? REG_BIT_TWL_IRQ_VOL_CHANGE : 0x00; //vol_changed } break; @@ -239,6 +239,12 @@ u8 vreg_ctr_read( u8 adrs ) { return( vreg_ctr[ VREG_C_MCU_STATUS ] | ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) ); } +#if 0 + if( adrs >= VREG_C_ENDMARK_ ) + { + return( 0xEE ); + } +#endif return ( vreg_ctr[adrs] ); } @@ -289,8 +295,9 @@ void vreg_ctr_after_read( u8 adrs ) // マスクされてたら、フラグも立てず、割り込みも入れない。 void set_irq( u8 irqreg, u8 irq_flg ) { - static u8 tot; // IRQ_mcu がLに縛られてると困る(基板不良) + u8 tot; // IRQ_mcu がLに縛られてると困る(基板不良) + DI(); if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ){ vreg_ctr[ irqreg ] |= irq_flg; IRQ0_neg; @@ -298,4 +305,5 @@ void set_irq( u8 irqreg, u8 irq_flg ) while( !IRQ0 && ( ++tot != 0 ) ){;} IRQ0_ast; } + EI(); } diff --git a/trunk/vreg_ctr.h b/trunk/vreg_ctr.h index 838c76c..0de9f50 100644 --- a/trunk/vreg_ctr.h +++ b/trunk/vreg_ctr.h @@ -177,15 +177,10 @@ enum VREG_C VREG_C_TUNE = 0x08, VREG_C_SND_VOL, -#ifdef _VREG_C_NEW_ VREG_C_BT_TEMP, VREG_C_BT_REMAIN, VREG_C_BT_REMAIN_FINE, -#else - VREG_C_BT_REMAIN, - VREG_C_BT_TEMP, - VREG_C_BT_REMAIN_FINE, // ダミーですが -#endif + VREG_C_BT_VOLTAGE, VREG_C_STATUS_1 = 0x0E, VREG_C_STATUS = 0x0F, diff --git a/trunk/yav_mcu_bsr.plg b/trunk/yav_mcu_bsr.plg index 7479c7a..b4c1368 100644 --- a/trunk/yav_mcu_bsr.plg +++ b/trunk/yav_mcu_bsr.plg @@ -1,26 +1,6 @@ C:\WINDOWS\system32\cmd.exe /c echo touch magic.c touch magic.c -"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -quvjl2wt -sainter_asm -zp -no pm.c -pm.c(196) : CC78K0R warning W0401: Conversion may lose significant digits -pm.c(208) : CC78K0R warning W0401: Conversion may lose significant digits -pm.c(212) : CC78K0R warning W0401: Conversion may lose significant digits -pm.c(380) : CC78K0R warning W0401: Conversion may lose significant digits -pm.c(452) : CC78K0R warning W0401: Conversion may lose significant digits -pm.c(877) : CC78K0R warning W0401: Conversion may lose significant digits -Compilation complete, 0 error(s) and 6 warning(s) found. -"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\pm.asm -Assembly complete, 0 error(s) and 0 warning(s) found. -"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -quvjl2wt -sainter_asm -zp -no vreg_twl.c -vreg_twl.c(46) : CC78K0R warning W0401: Conversion may lose significant digits -vreg_twl.c(50) : CC78K0R warning W0401: Conversion may lose significant digits -Compilation complete, 0 error(s) and 2 warning(s) found. -"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\vreg_twl.asm -Assembly complete, 0 error(s) and 0 warning(s) found. -"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\lk78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -kp -gb6EFBFFh -b"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r" -dbsr_mcu.dr -s -w0 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel ini_VECT.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel reboot.rel sw.rel task_debug.rel task_misc.rel task_sys.rel -Link complete, 0 error(s) and 0 warning(s) found. -"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf -Object Conversion Complete, 0 error(s) and 0 warning(s) found. C:\WINDOWS\system32\cmd.exe /c ruby C:\Cygwin\home\fujita_ryohei\ctr\nec_s_2_bsrbin.rb bsr.hex C:/Cygwin/home/fujita_ryohei/ctr/nec_s_2_bsrbin.rb:2: warning: variable $KCODE is no longer effective; ignored -Build Total error(s) : 0 Total warning(s) : 8 +Build Total error(s) : 0 Total warning(s) : 0 diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index 917d1bc..bddfb97 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -7,7 +7,7 @@ Internal Rom=32KB Internal Ram=1536B Clock=Target Sub Clock=Target -Peripheral Break=0x1 +Peripheral Break=0x3 Firm Clock=User Flash Programming=Permit Low-voltage Flash Rewriting=On @@ -23,7 +23,7 @@ SubClock=32.768 Count=0 [Main] Geometry=22, 22, 1200, 882 -Window=Normal +Window=Max MDI_MAX=OFF Button=ON Mode=Auto @@ -50,7 +50,7 @@ LoadFilter1=5 Offset1=0 Object1=ON Symbol1=ON -Erase1=OFF +Erase1=ON HighSpeed1=OFF CPU Reset1=ON Symbol Reset1=ON @@ -58,7 +58,7 @@ Symbol Reset1=ON Dir=. Filter=Source [Debugger Option] -Source Path="" +Source Path="renge" Symbol Size=Byte Symbol Format=Hex Register Name=Func @@ -78,9 +78,9 @@ Symbol Type=OFF Language=C Kanji=SJIS [Source] -Geometry=0, 0, 600, 749 +Geometry=335, 68, 762, 1008 Window=Normal -DispStart=52 +DispStart=32 CaretPos=88,0 Mode=Normal DispFile= @@ -139,11 +139,19 @@ SaveRange=Screen SaveStart= SaveEnd= Accumulative=ON +[Source1] +Geometry=148, -1, 762, 1008 +Window=Normal +DispStart=1 +CaretPos=1,0 +Mode=Normal +DispFile=task_sys.c +Accumulative=ON [Assemble] -Geometry=0, 0, 0, 0 -Window=Hide -DispStart=864531456 -CaretPos=0,0 +Geometry=177, 18, 600, 400 +Window=Normal +DispStart=10295 +CaretPos=10295,27 Address1= Address2= Address3= @@ -251,9 +259,9 @@ Destination=0 [I/O Port] Line=0 [Stack] -Geometry=0, 0, 0, 0 -Window=Hide -Boundary=0 +Geometry=23, 779, 400, 300 +Window=Normal +Boundary=13762687 Mode=Proper [Sfr] Geometry=0, 0, 0, 0 @@ -712,9 +720,9 @@ L427=TOL0L L428=TOM0 L429=TOM0L [Local Variable] -Geometry=0, 0, 0, 0 -Window=Hide -Boundary=0 +Geometry=1167, 795, 400, 300 +Window=Normal +Boundary=13041851 Mode=Proper [Trace View] Geometry=0, 0, 0, 0 @@ -855,19 +863,24 @@ Detail=OFF Last Name= Count=0 [Variable] -Geometry=0, 0, 0, 0 -Window=Hide -Boundary=0 -Line=0 +Geometry=1147, 6, 440, 667 +Window=Normal +Boundary=13762700 +0=.SW_wifi_count,P,N,A,+,1 +1=.SW_pow_count,P,N,A,+,1 +2=+system_status,.,N,A,-,1 +3=+tasks_immed,P,N,A,-,1 +4=.vreg_ctr,P,N,A,+,1 +Line=5 [Quick Watch] -0= -1= -2= -3= -4= -5= -6= -7= +0=reg_shadow,P,A,1 +1=vreg_c,P,A,1 +2=vreg_ctr,P,A,1 +3=SSR02,P,A,1 +4=tasks_immed,P,A,1 +5=system_status,P,A,1 +6=SW_pow_count,P,A,1 +7=SW_wifi_count,P,A,1 8= 9= 10= @@ -877,10 +890,26 @@ Line=0 14= 15= [Software Break] -Geometry=0, 0, 0, 0 -Window=Hide +Geometry=25, 25, 500, 200 +Window=Normal Width=150 30 200 100 -Count=0 +Name0=Swb00002 +Address0=renge.c#_renge_task_immed_add+0x60 +Window0=ASM +Status0=ON +Name1=Swb00001 +Address1=renge.c#_renge_task_immed_add+0x47 +Window1=ASM +Status1=ON +Name2=Swb00003 +Address2=renge.c#_renge_task_immed_add+0x2e +Window2=ASM +Status2=ON +Name3=Swb00004 +Address3=renge.c#_renge_task_immed_run+0x15 +Window3=ASM +Status3=ON +Count=4 [Reset] Debugger=ON Symbol=OFF diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index 0e5aca9..3717551 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -1,36 +1,19 @@ [ProjectManager] FrameMax=1 -FrameX=2 -FrameY=2 -FrameCX=1022 -FrameCY=766 -OpenFile1=renge\\renge_defs.h,0,330,330,1574,1087,0,47,0,0 -OpenFile2=user_define.h,0,176,176,1420,933,0,33,20,0 -OpenFile3=magic.c,0,242,242,1486,999,3,8,0,0 -OpenFile4=inter_asm\self_flash.asm,0,118,281,1362,1038,0,933,0,0 -OpenFile5=led.c,0,286,286,1469,912,45,278,46,0 -OpenFile6=i2c_twl.c,0,110,110,1354,867,0,156,0,0 -OpenFile7=reboot.c,0,110,110,1354,867,5,14,14,0 -OpenFile8=sw.c,0,198,198,1442,955,12,137,19,0 -OpenFile9=vreg_ctr.h,0,154,154,1398,911,9,108,0,0 -OpenFile10=i2c_mcu.c,0,330,330,1204,1087,16,484,15,0 -OpenFile11=led.h,0,176,176,1420,933,0,16,0,0 -OpenFile12=main.c,0,198,198,1442,955,0,10,0,0 -OpenFile13=vreg_twl.c,0,314,110,1264,895,0,141,19,0 -OpenFile14=vreg_ctr.c,0,220,220,1464,977,16,296,16,0 -OpenFile15=loader.c,0,186,351,1369,977,0,23,36,0 -OpenFile16=task_sys.c,0,88,88,1332,845,0,28,44,0 -OpenFile17=task_misc.c,0,130,277,1374,1034,0,151,0,0 -OpenFile18=task_debug.c,0,22,22,1266,779,0,7,0,0 -OpenFile19=rtc.c,0,308,308,1491,934,0,1,17,0 -OpenFile20=accero.c,0,176,176,1420,933,73,5,73,0 -OpenFile21=pm.c,0,437,355,1681,1112,44,260,0,0 -OpenFile22=adc.c,0,275,163,1065,610,28,73,28,0 -OpenFile23=config.h,0,257,50,1147,671,0,17,21,0 -OpenFile24=ProjectWindow +FrameX=158 +FrameY=51 +FrameCX=1299 +FrameCY=1043 +OpenFile1=task_debug.c,0,324,114,1568,871,58,31,57,0 +OpenFile2=task_misc.c,0,220,220,1464,977,0,1,0,0 +OpenFile3=ProjectWindow PrjPos=0,2,754,3,253 -OpenFile25=OutputWindow -OutputPos=0,82,1026,747,1547 +OpenFile4=task_sys.c,0,308,308,1552,1065,0,256,0,0 +OpenFile5=renge\renge.c,0,330,330,1574,1087,0,172,0,0 +OpenFile6=pm.c,0,286,286,1530,1043,27,542,30,0 +OpenFile7=config.h,0,264,264,1508,1021,21,15,21,0 +OpenFile8=OutputWindow +OutputPos=0,48,992,426,1226 ActivePRJ=yav_mcu_bsr.prj [ProjectWindow] ProjectWindowDispType=0 diff --git a/trunk/yav_mcu_bsr.sdb b/trunk/yav_mcu_bsr.sdb index e66b856..71c8222 100644 --- a/trunk/yav_mcu_bsr.sdb +++ b/trunk/yav_mcu_bsr.sdb @@ -11,7 +11,7 @@ T=4b03c375 7=rtc.h 8=reboot.h [pm.c] -T=4b05239f +T=4b0d00ef 1=incs.h 2=adc.h 3=led.h @@ -20,7 +20,7 @@ T=4b05239f T=4b024862 1=incs.h [main.c] -T=4b039541 +T=4b0b8f87 1=incs.h 2=WDT.h 3=rtc.h @@ -34,7 +34,7 @@ T=4afd21ca T=4afd21ca 1=incs_loader.h [i2c_mcu.c] -T=4b03c7d8 +T=4b0bae4b 1=incs.h 2=i2c_mcu.h [i2c_twl.c] @@ -52,7 +52,7 @@ T=4b0499ab T=4b03bbe1 1=incs.h [vreg_ctr.c] -T=4b04f66b +T=4b0d172a 1=incs.h 2=vreg_ctr.h 3=rtc.h @@ -60,7 +60,7 @@ T=4b04f66b 5=accero.h 6=pm.h [vreg_twl.c] -T=4b049a03 +T=4b0b2c80 1=incs.h 2=jhl_defs.h 3=vreg_twl.h @@ -73,14 +73,15 @@ T=4b04e9f8 3=pm.h 4=led.h [renge\renge.c] -T=4b024862 +T=4b0d1a2b 1=renge\renge_defs.h 2=renge\renge_task_intval.h 3=renge\renge_task_immediate.h 4=WDT.h -5=bsr_system.h +5=config.h +6=bsr_system.h [accero.c] -T=4b04cee4 +T=4b0bab54 1=incs.h 2=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h [self_flash.c] @@ -102,19 +103,19 @@ T=4b04cee4 6=pm.h 7=rtc.h [task_debug.c] -T=4b04c0e8 +T=4b0c9623 1=incs.h 2=renge\renge.h 3=pm.h 4=accero.h [task_misc.c] -T=4b050b3d +T=4b0b8f86 1=incs.h 2=renge\renge.h 3=pm.h 4=accero.h [task_sys.c] -T=4b023fdb +T=4b0cf543 1=incs.h 2=i2c_twl.h 3=i2c_ctr.h @@ -137,10 +138,10 @@ T=4afd21cb T=4b023fdb 1=config.h [user_define.h] -T=4afd21cb +T=4b0d0086 1=config.h [config.h] -T=4b0b21c6 +T=4b0d00cc [bsr_system.h] T=4afd21ca [renge\renge.h] @@ -153,7 +154,7 @@ T=4b024862 T=4afa8168 1=renge\renge_defs.h [vreg_ctr.h] -T=4b04fb02 +T=4b0bab04 1=config.h [loader.h] T=4afd21ca @@ -169,7 +170,7 @@ T=4afd21cb [i2c_ctr.h] T=4afd21cb [pm.h] -T=4b04fd61 +T=4b0b8f87 [rtc.h] T=4afd21cb [adc.h]