diff --git a/trunk/batt_params.h b/trunk/batt_params.h index 1356f41..31d565d 100644 --- a/trunk/batt_params.h +++ b/trunk/batt_params.h @@ -17,7 +17,7 @@ const u8 BT_PARAM[][64] = { 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 }, { // ID = 1 120 ohm (ダミーでマクセル) - 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, @@ -25,7 +25,7 @@ const u8 BT_PARAM[][64] = { 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 - }, + }, { // ID = 2 360 hom (ダミーでマクセル) 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, @@ -65,8 +65,10 @@ const u8 BT_PARAM[][64] = { 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 - }, + } + /*, { // ID = 6 8.2kohm (ダミーでパナ) + ROM不足のため、埋蔵金を使うことになりました。 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, @@ -76,7 +78,8 @@ const u8 BT_PARAM[][64] = { 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 } - // ID = 7 白箱 +*/ + // ID = 7 白箱 /// パラメータ無し }; diff --git a/trunk/bsr_system.h b/trunk/bsr_system.h index a79e76d..75bfcb4 100644 --- a/trunk/bsr_system.h +++ b/trunk/bsr_system.h @@ -28,7 +28,7 @@ enum model_ MODEL_SHIROBAKO, MODEL_JIKKI_NOBATT, MODEL_CAPTURE_BOX, - MODEL_RESERVED2, + MODEL_ISBAKO, // ただし、system_status.modelは MODEL_JIKKI にしておくので未使用 MODEL_RESERVED3, }; @@ -43,6 +43,7 @@ typedef struct _system_status_ unsigned char captureBox:1; // キャプチャ箱 SDKには実機と返す unsigned char taikendai:1; unsigned char taikendai_nbd:1; + unsigned char is_dev:1; enum model_ model; }system_status_; diff --git a/trunk/config.h b/trunk/config.h index 500bcd4..85eabd5 100644 --- a/trunk/config.h +++ b/trunk/config.h @@ -17,9 +17,11 @@ // 一時ファーム -#define MCU_VER_MAJOR 0x01 -#define MCU_VER_MINOR 0x20 +#define MCU_VER_MAJOR 0x01 +#define MCU_VER_MINOR 0x30 + +// ↑改訂の時は↓気をつけないと体験台の生産できないからね! #ifdef _TAIKENDAI_SEISAN_SPECIAL_ #define MCU_VER_MINOR 0x80 #endif diff --git a/trunk/hoge.bin b/trunk/hoge.bin index 40c6a8e..c55888c 100644 Binary files a/trunk/hoge.bin and b/trunk/hoge.bin differ diff --git a/trunk/loader.c b/trunk/loader.c index 28fe63f..577564c 100644 --- a/trunk/loader.c +++ b/trunk/loader.c @@ -103,8 +103,8 @@ void main( ) { // 通常の電源投入 // 電池接続時、ちょっと待ってみる(チャタリング対策) - u16 pwup_delay0 = 0; - for( pwup_delay0 = 0; pwup_delay0 != 0xFFFF; pwup_delay0++ ){}; + u16 pwup_delay0; + for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0-- ){;}; } hdwinit2( ); @@ -137,32 +137,38 @@ void main( ) // 試遊台判定 // デバッガつないでると上手に判定できないことがあります。 + if( !DIPSW_0 && !DIPSW_1 ) + { + system_status.is_dev = 1; + } + else + { #ifndef _FORCE_TAIKENDAI_ - if( !DIPSW_0 ) + if( !DIPSW_0 ) #else - if(1) + if(1) #endif - { - system_status.taikendai = 1; - } - else - { - system_status.taikendai = 0; - } + { + system_status.taikendai = 1; + } + else + { + system_status.taikendai = 0; + } #ifndef _FORCE_TAIKENDAI_NBD_ - if( !DIPSW_1 ) + if( !DIPSW_1 ) #else - if(1) + if(1) #endif - { - system_status.taikendai_nbd = 1; - } - else - { - system_status.taikendai_nbd = 0; - } - + { + system_status.taikendai_nbd = 1; + } + else + { + system_status.taikendai_nbd = 0; + } + } // 通常運転 main_loop( ); } diff --git a/trunk/sw.c b/trunk/sw.c index 1edc228..64772a0 100644 --- a/trunk/sw.c +++ b/trunk/sw.c @@ -22,12 +22,14 @@ #define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW ) #define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW ) */ +#define TIME_MUKAN (u8)( 300 / INTERVAL_TSK_SW ) //========================================================= u16 SW_pow_count; bit SW_pow_mask; u8 SW_home_count, SW_wifi_count, SW_home_count_rel; +u8 sw_wifi_mukan_time; bit SW_HOME_n; @@ -61,13 +63,14 @@ u16 off_timeout_timer; } \ if( count == CLICK_THRESHOLD ) \ { \ + count += 1; \ set_irq( VREG_C_IRQ0, irq_bit_name ); \ } \ } \ else \ { \ count = 0; \ - } + } @@ -108,20 +111,20 @@ void tsk_sw( ) else if( SW_pow_count == ( HOLD_THREASHOLD ) ) { set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD ); - if( off_timeout_timer == 0 ) - { - off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16; - } + if( off_timeout_timer == 0 ) + { + off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16; + } } - if( off_timeout_timer != 0 ) // 長押し割り込み後、タイムアウトで強制オフ。 - { - off_timeout_timer -= 1; - if( off_timeout_timer == 1 ) - { - system_status.force_off = true; - } - } + if( off_timeout_timer != 0 ) // 長押し割り込み後、タイムアウトで強制オフ。 + { + off_timeout_timer -= 1; + if( off_timeout_timer == 1 ) + { + system_status.force_off = true; + } + } count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント @@ -139,11 +142,23 @@ void tsk_sw( ) SW_HOME_n = 1; // 放されてる状態 } // if( !( system_status.taikendai || system_status.taikendai_nbd )) - { - chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); - chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); - } + { + chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); + chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); + } // wifi sw // - chk_clicked( SW_WIFI_n, SW_wifi_count, REG_BIT_SW_WIFI_CLICK ); + /// 最悪な実装なのはわかっているが、メモリ不足と、市場に出てしまった不良スイッチを救うため + if( sw_wifi_mukan_time != 0 ) + { + sw_wifi_mukan_time--; + } + else + { + chk_clicked( SW_WIFI_n, SW_wifi_count, REG_BIT_SW_WIFI_CLICK ); + if( SW_wifi_count == CLICK_THRESHOLD +1 ) // 押した判定発生! + { + sw_wifi_mukan_time = TIME_MUKAN; + } + } } } diff --git a/trunk/sw.h b/trunk/sw.h index 88aaea1..a520355 100644 --- a/trunk/sw.h +++ b/trunk/sw.h @@ -7,7 +7,7 @@ extern u16 SW_pow_count; extern bit SW_pow_mask; #define INTERVAL_TSK_SW 8 -#define CLICK_THRESHOLD 2 +#define CLICK_THRESHOLD 5 #define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW ) #define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW ) diff --git a/trunk/task_misc.c b/trunk/task_misc.c index 3c27c04..929b024 100644 --- a/trunk/task_misc.c +++ b/trunk/task_misc.c @@ -279,7 +279,8 @@ u8 extinfo_read() // static でとるほどのものでないので毎回スタックからとってくる // switchとかにするとromが困る... なんだかなぁ。 - infos[0] = system_status.captureBox? MODEL_CAPTURE_BOX: (u8)system_status.model; + infos[0] = system_status.captureBox? MODEL_CAPTURE_BOX + : ( system_status.is_dev? MODEL_ISBAKO: (u8)system_status.model ); infos[1] = pmic_version; infos[2] = battery_manufacturer; infos[3] = mgic_version[0];