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
|
0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
|
||||||
},
|
},
|
||||||
{ // ID = 1 120 ohm (ダミーでマクセル)
|
{ // 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,
|
0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
|
||||||
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
|
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
|
||||||
0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10,
|
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,
|
0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70,
|
||||||
0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
|
0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
|
||||||
0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
|
0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
|
||||||
},
|
},
|
||||||
{ // ID = 2 360 hom (ダミーでマクセル)
|
{ // ID = 2 360 hom (ダミーでマクセル)
|
||||||
0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
|
0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
|
||||||
0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
|
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,
|
0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00,
|
||||||
0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0,
|
0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0,
|
||||||
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
|
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
|
||||||
},
|
}
|
||||||
|
/*,
|
||||||
{ // ID = 6 8.2kohm (ダミーでパナ)
|
{ // ID = 6 8.2kohm (ダミーでパナ)
|
||||||
|
ROM不足のため、埋蔵金を使うことになりました。
|
||||||
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
|
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
|
||||||
0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10,
|
0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10,
|
||||||
0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50,
|
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,
|
0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0,
|
||||||
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
|
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
|
||||||
}
|
}
|
||||||
// ID = 7 ”’”
|
*/
|
||||||
|
// ID = 7 白箱
|
||||||
/// パラメータ無し
|
/// パラメータ無し
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ enum model_
|
|||||||
MODEL_SHIROBAKO,
|
MODEL_SHIROBAKO,
|
||||||
MODEL_JIKKI_NOBATT,
|
MODEL_JIKKI_NOBATT,
|
||||||
MODEL_CAPTURE_BOX,
|
MODEL_CAPTURE_BOX,
|
||||||
MODEL_RESERVED2,
|
MODEL_ISBAKO, // ただし、system_status.modelは MODEL_JIKKI にしておくので未使用
|
||||||
MODEL_RESERVED3,
|
MODEL_RESERVED3,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -43,6 +43,7 @@ typedef struct _system_status_
|
|||||||
unsigned char captureBox:1; // キャプチャ箱 SDKには実機と返す
|
unsigned char captureBox:1; // キャプチャ箱 SDKには実機と返す
|
||||||
unsigned char taikendai:1;
|
unsigned char taikendai:1;
|
||||||
unsigned char taikendai_nbd:1;
|
unsigned char taikendai_nbd:1;
|
||||||
|
unsigned char is_dev:1;
|
||||||
enum model_ model;
|
enum model_ model;
|
||||||
}system_status_;
|
}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_
|
#ifdef _TAIKENDAI_SEISAN_SPECIAL_
|
||||||
#define MCU_VER_MINOR 0x80
|
#define MCU_VER_MINOR 0x80
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
BIN
trunk/hoge.bin
BIN
trunk/hoge.bin
Binary file not shown.
@ -103,8 +103,8 @@ void main( )
|
|||||||
{
|
{
|
||||||
// 通常の電源投入
|
// 通常の電源投入
|
||||||
// 電池接続時、ちょっと待ってみる(チャタリング対策)
|
// 電池接続時、ちょっと待ってみる(チャタリング対策)
|
||||||
u16 pwup_delay0 = 0;
|
u16 pwup_delay0;
|
||||||
for( pwup_delay0 = 0; pwup_delay0 != 0xFFFF; pwup_delay0++ ){};
|
for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0-- ){;};
|
||||||
}
|
}
|
||||||
|
|
||||||
hdwinit2( );
|
hdwinit2( );
|
||||||
@ -137,32 +137,38 @@ void main( )
|
|||||||
|
|
||||||
// 試遊台判定
|
// 試遊台判定
|
||||||
// デバッガつないでると上手に判定できないことがあります。
|
// デバッガつないでると上手に判定できないことがあります。
|
||||||
|
if( !DIPSW_0 && !DIPSW_1 )
|
||||||
|
{
|
||||||
|
system_status.is_dev = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
#ifndef _FORCE_TAIKENDAI_
|
#ifndef _FORCE_TAIKENDAI_
|
||||||
if( !DIPSW_0 )
|
if( !DIPSW_0 )
|
||||||
#else
|
#else
|
||||||
if(1)
|
if(1)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
system_status.taikendai = 1;
|
system_status.taikendai = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
system_status.taikendai = 0;
|
system_status.taikendai = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _FORCE_TAIKENDAI_NBD_
|
#ifndef _FORCE_TAIKENDAI_NBD_
|
||||||
if( !DIPSW_1 )
|
if( !DIPSW_1 )
|
||||||
#else
|
#else
|
||||||
if(1)
|
if(1)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
system_status.taikendai_nbd = 1;
|
system_status.taikendai_nbd = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
system_status.taikendai_nbd = 0;
|
system_status.taikendai_nbd = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// 通常運転
|
// 通常運転
|
||||||
main_loop( );
|
main_loop( );
|
||||||
}
|
}
|
||||||
|
|||||||
51
trunk/sw.c
51
trunk/sw.c
@ -22,12 +22,14 @@
|
|||||||
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
|
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
|
||||||
#define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW )
|
#define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW )
|
||||||
*/
|
*/
|
||||||
|
#define TIME_MUKAN (u8)( 300 / INTERVAL_TSK_SW )
|
||||||
|
|
||||||
//=========================================================
|
//=========================================================
|
||||||
u16 SW_pow_count;
|
u16 SW_pow_count;
|
||||||
bit SW_pow_mask;
|
bit SW_pow_mask;
|
||||||
|
|
||||||
u8 SW_home_count, SW_wifi_count, SW_home_count_rel;
|
u8 SW_home_count, SW_wifi_count, SW_home_count_rel;
|
||||||
|
u8 sw_wifi_mukan_time;
|
||||||
|
|
||||||
bit SW_HOME_n;
|
bit SW_HOME_n;
|
||||||
|
|
||||||
@ -61,13 +63,14 @@ u16 off_timeout_timer;
|
|||||||
} \
|
} \
|
||||||
if( count == CLICK_THRESHOLD ) \
|
if( count == CLICK_THRESHOLD ) \
|
||||||
{ \
|
{ \
|
||||||
|
count += 1; \
|
||||||
set_irq( VREG_C_IRQ0, irq_bit_name ); \
|
set_irq( VREG_C_IRQ0, irq_bit_name ); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
count = 0; \
|
count = 0; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -108,20 +111,20 @@ void tsk_sw( )
|
|||||||
else if( SW_pow_count == ( HOLD_THREASHOLD ) )
|
else if( SW_pow_count == ( HOLD_THREASHOLD ) )
|
||||||
{
|
{
|
||||||
set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD );
|
set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD );
|
||||||
if( off_timeout_timer == 0 )
|
if( off_timeout_timer == 0 )
|
||||||
{
|
{
|
||||||
off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16;
|
off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( off_timeout_timer != 0 ) // 長押し割り込み後、タイムアウトで強制オフ。
|
if( off_timeout_timer != 0 ) // 長押し割り込み後、タイムアウトで強制オフ。
|
||||||
{
|
{
|
||||||
off_timeout_timer -= 1;
|
off_timeout_timer -= 1;
|
||||||
if( off_timeout_timer == 1 )
|
if( off_timeout_timer == 1 )
|
||||||
{
|
{
|
||||||
system_status.force_off = true;
|
system_status.force_off = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント
|
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント
|
||||||
|
|
||||||
@ -139,11 +142,23 @@ void tsk_sw( )
|
|||||||
SW_HOME_n = 1; // 放されてる状態
|
SW_HOME_n = 1; // 放されてる状態
|
||||||
}
|
}
|
||||||
// if( !( system_status.taikendai || system_status.taikendai_nbd ))
|
// 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, 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_rel, REG_BIT_SW_HOME_RELEASE );
|
||||||
}
|
}
|
||||||
// wifi sw //
|
// 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;
|
extern bit SW_pow_mask;
|
||||||
|
|
||||||
#define INTERVAL_TSK_SW 8
|
#define INTERVAL_TSK_SW 8
|
||||||
#define CLICK_THRESHOLD 2
|
#define CLICK_THRESHOLD 5
|
||||||
|
|
||||||
#define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW )
|
#define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW )
|
||||||
#define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW )
|
#define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW )
|
||||||
|
|||||||
@ -279,7 +279,8 @@ u8 extinfo_read()
|
|||||||
|
|
||||||
// static でとるほどのものでないので毎回スタックからとってくる
|
// static でとるほどのものでないので毎回スタックからとってくる
|
||||||
// switchとかにするとromが困る... なんだかなぁ。
|
// 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[1] = pmic_version;
|
||||||
infos[2] = battery_manufacturer;
|
infos[2] = battery_manufacturer;
|
||||||
infos[3] = mgic_version[0];
|
infos[3] = mgic_version[0];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user