mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
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:
parent
aa8d8f1215
commit
6c8ee1b510
@ -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 白箱
|
||||
/// パラメータ無し
|
||||
};
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
BIN
trunk/hoge.bin
BIN
trunk/hoge.bin
Binary file not shown.
@ -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( );
|
||||
}
|
||||
|
||||
51
trunk/sw.c
51
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 )
|
||||
|
||||
@ -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];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user