SDK2.x向け V1.30

(流出してしまった)不良無線SWのチャタリング対応
ISデバッガ対応

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@325 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
n2232 2011-03-15 07:58:25 +00:00
parent aa8d8f1215
commit 6c8ee1b510
8 changed files with 76 additions and 48 deletions

View File

@ -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 白箱
/// パラメータ無し
};

View File

@ -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_;

View File

@ -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

Binary file not shown.

View File

@ -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( );
}

View File

@ -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;
}
}
}
}

View File

@ -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 )

View File

@ -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];