mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-06-18 16:45:33 -04:00
0.17
・レジスタ書き込みでの強制ボリュームセット実装 ・パナソニックのバッテリパラメータをダミーから差し替え(まだ機能してない) ・フルカラーお知らせLEDにきちんと対応 現行の電源ボード、電源赤がPWMできたりするが実機に合わせてコードも整理 でないと自動判別後が大変な為 ・電源断時にLEDを何となくフェードアウト ・CTR側のI2Cレジスタの実装を修正。220バイト程ROMを節約 エンバグ怖い ・I2C_mcuのモジュール初期化チェックなどの無駄を少し整理 ・TWL I2Cの通信がどうにも間に合わないとき、リトライされてタイミングが悪いと0x00などを返していた。 リトライ時にも正常に動作するように修正。エンバグ怖い ・廃止enumをちょっと整理 ・I2Cレジスタの初期値・リセット時の初期化などを修正 ・温度で充電停止周りを実装 ・プラットフォームの判定を誤っていた。(0x7Fで読める) ・RCOMPの値の計算を間違えていた。算数もできないのか! ・デバッグコードを抜いた。(pm.c) ・rengeOSのデバッグを有効にしたままだった。I2C_TWLのパフォーマンスが全くでず不具合の嵐 ・6秒で電源断を追加。(CTRレジスタから可変) デバッグで耐えられないのでまだ#ifdefでデフォルトを1秒にしてある ・電池無しからアダプタ差したり、アダプタ有りの状態から電池をつないだりで充電したりしなかったり電源はいらなかったり…を修正 ・電源LEDが赤になるタイミングと、TWLへの電池残量への通知、NTRへの通知などの閾値がばらばらだったのを修正 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@171 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
70bccac852
commit
2a6ddf4d26
@ -173,16 +173,19 @@ task_status_immed acc_hosu_set( )
|
||||
|
||||
str_send_buf[1] = 0x00; // ctrl2 HPF:normal, filterd, HPF for IRQ : dis/dis, HPF coeff:norm
|
||||
#ifdef _MODEL_WM0_
|
||||
# ifdef _MODEL_WM0_TEG2_CTRC_
|
||||
str_send_buf[2] = 0x02;
|
||||
# else
|
||||
str_send_buf[2] = 0x10; // 3 IRQ pol :Active HI, Drive:Pushpull,
|
||||
/// IRQ2flg latch: auto clear after read, IRQ2 conf: IRQ( fall,shock,...)
|
||||
/// 1 : auto clear after read, conf: data ready
|
||||
# endif
|
||||
|
||||
#else
|
||||
# ifdef _MODEL_CTR_JIKKI_
|
||||
str_send_buf[2] = 0x10;
|
||||
# else
|
||||
str_send_buf[2] = 0x02; // 3 IRQ pol :Active HI, Drive:Pushpull,
|
||||
/// IRQ2flg latch: auto clear after read, IRQ2 conf: IRQ( fall,shock,...)
|
||||
/// 1 : auto clear after read, conf: data ready
|
||||
str_send_buf[2] = 0x02;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
@ -22,9 +22,9 @@
|
||||
//#define _MODEL_WM0_TEG2_CTRC_
|
||||
//#define _MODEL_TS0_
|
||||
// <20>ªTEG2 CPU <20>{ Type-C
|
||||
#define _MODEL_CTR_TS_
|
||||
//#define _MODEL_CTR_TS_
|
||||
// <20>ªFINAL SoC <20>{ Type-C
|
||||
//#define _MODEL_CTR_JIKKI_
|
||||
#define _MODEL_CTR_JIKKI_
|
||||
|
||||
|
||||
//#define _SW_HOME_ENABLE_
|
||||
@ -44,6 +44,9 @@
|
||||
#define _MODEL_CTR_
|
||||
#endif
|
||||
|
||||
#ifdef _MODEL_WM0_TEG2_CTRC_
|
||||
#define _MODEL_WM0_
|
||||
#endif
|
||||
|
||||
// ---------------------------------- //
|
||||
#ifdef _MODEL_TEG2_
|
||||
|
Binary file not shown.
@ -82,8 +82,9 @@ Assembly complete, 0 error(s) and 0 warning(s) found.
|
||||
adc.c(90) : CC78K0R warning W0745: Expected function prototype
|
||||
adc.c(148) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
adc.c(149) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
adc.c(287) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
adc.c(321) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
Compilation complete, 0 error(s) and 4 warning(s) found.
|
||||
Compilation complete, 0 error(s) and 5 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\adc.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 -qvjl3wt -sainter_asm -zp -no renge\renge.c
|
||||
@ -143,4 +144,4 @@ intel-HEX to bsr bin converter
|
||||
file converted!
|
||||
|
||||
|
||||
Build Total error(s) : 0 Total warning(s) : 42
|
||||
Build Total error(s) : 0 Total warning(s) : 43
|
||||
|
@ -78,10 +78,10 @@ Symbol Type=OFF
|
||||
Language=C
|
||||
Kanji=SJIS
|
||||
[Source]
|
||||
Geometry=317, -7, 707, 899
|
||||
Geometry=527, 9, 707, 899
|
||||
Window=Normal
|
||||
DispStart=68
|
||||
CaretPos=69,0
|
||||
DispStart=289
|
||||
CaretPos=290,0
|
||||
Mode=Normal
|
||||
DispFile=
|
||||
Address1=
|
||||
@ -142,8 +142,8 @@ Accumulative=ON
|
||||
[Assemble]
|
||||
Geometry=75, 362, 600, 400
|
||||
Window=Normal
|
||||
DispStart=15269
|
||||
CaretPos=15269,27
|
||||
DispStart=17283
|
||||
CaretPos=17283,27
|
||||
Address1=
|
||||
Address2=
|
||||
Address3=
|
||||
@ -982,11 +982,7 @@ Line=0
|
||||
Geometry=857, 296, 391, 360
|
||||
Window=Hide
|
||||
Width=150 30 200 100
|
||||
Name0=Swb00001
|
||||
Address0=accero.c#es_F0038+0x6
|
||||
Window0=ASM
|
||||
Status0=ON
|
||||
Count=1
|
||||
Count=0
|
||||
[Reset]
|
||||
Debugger=ON
|
||||
Symbol=OFF
|
||||
|
@ -6,7 +6,7 @@ Series=78K0R.PM
|
||||
Device=uPD79F0104
|
||||
DeviceVer=E1.00b
|
||||
DebugMode=1
|
||||
Target=bsr.lmf
|
||||
Target=C:\78k_data\yav-mcu-basara\branches\0.15(sdk0.9_E3_fix_vol)\bsr.lmf
|
||||
[BuildMode0]
|
||||
BuildModeName=Debug Build
|
||||
TargetFile=0
|
||||
@ -1005,11 +1005,6 @@ DefaultMode2=1
|
||||
DefaultMode3=1
|
||||
DefaultMode4=1
|
||||
DefaultMode5=1
|
||||
[ToolSet]
|
||||
ToolSetName=(•ĎŤX)78K0R Software Package V1.10
|
||||
Tool1=CC78K0R|W2.10
|
||||
Tool2=RA78K0R|W1.31
|
||||
Tool3=ID78K0R-QB|V3.60
|
||||
[IncFile]
|
||||
Include1=incs_loader.h
|
||||
Include2=jhl_defs.h
|
||||
@ -1042,3 +1037,8 @@ Include28=i2c_twl.h
|
||||
Include29=sw.h
|
||||
Include30=..\..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
Include31=..\..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
[ToolSet]
|
||||
ToolSetName=(•ĎŤX)78K0R Software Package V1.10
|
||||
Tool1=CC78K0R|W2.10
|
||||
Tool2=RA78K0R|W1.31
|
||||
Tool3=ID78K0R-QB|V3.60
|
||||
|
@ -8,16 +8,15 @@ OpenFile1=renge\renge.h,0,502,637,1746,1394,29,16,29,0
|
||||
OpenFile2=jhl_defs.h,0,250,539,1494,1265,0,10,8,0
|
||||
OpenFile3=renge\\renge_defs.h,0,293,307,1537,1033,18,37,18,0
|
||||
OpenFile4=task_sys.c,0,330,330,1574,1056,0,172,37,0
|
||||
OpenFile5=loader.c,0,296,307,1286,923,20,214,20,0
|
||||
OpenFile6=pm.h,0,254,446,1244,1062,0,115,0,0
|
||||
OpenFile7=sw.c,0,574,367,1818,1093,43,36,43,0
|
||||
OpenFile5=pm.h,0,254,446,1244,1062,0,115,0,0
|
||||
OpenFile6=sw.c,0,574,367,1818,1093,43,36,43,0
|
||||
OpenFile7=vreg_ctr.h,0,632,184,1876,910,13,2,13,0
|
||||
OpenFile8=ProjectWindow
|
||||
PrjPos=0,2,754,3,253
|
||||
OpenFile9=vreg_ctr.h,0,632,184,1876,910,13,2,13,0
|
||||
OpenFile10=config.h,0,352,352,1596,1078,2,27,0,0
|
||||
OpenFile9=loader.c,0,538,345,1528,961,4,239,6,0
|
||||
OpenFile10=config.h,0,302,62,1546,788,0,27,0,0
|
||||
OpenFile11=OutputWindow
|
||||
OutputPos=0,572,1038,46,1104
|
||||
OpenFile12=adc.c,0,88,88,1332,814,5,288,0,0
|
||||
ActivePRJ=yav_mcu_bsr.prj
|
||||
[ProjectWindow]
|
||||
ProjectWindowDispType=0
|
||||
|
@ -34,7 +34,7 @@ T=4bf0d1dd
|
||||
6=led.h
|
||||
7=adc.h
|
||||
[magic.c]
|
||||
T=4bf21819
|
||||
T=4bf32d27
|
||||
1=config.h
|
||||
[WDT.c]
|
||||
T=4bf0d1dd
|
||||
@ -90,7 +90,7 @@ T=4bf0d1db
|
||||
6=user_define.h
|
||||
7=bsr_system.h
|
||||
[accero.c]
|
||||
T=4bf0d1dd
|
||||
T=4bf32d1e
|
||||
1=incs.h
|
||||
2=..\..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
[self_flash.c]
|
||||
@ -157,7 +157,7 @@ T=4bf0d1dd
|
||||
T=4bf0d1dd
|
||||
1=config.h
|
||||
[config.h]
|
||||
T=4bf21845
|
||||
T=4bf33a2b
|
||||
[user_define.h]
|
||||
T=4bf0d1dd
|
||||
[bsr_system.h]
|
||||
|
22
trunk/adc.c
22
trunk/adc.c
@ -68,11 +68,11 @@ const u8 slider_to_codec[64] =
|
||||
127, 127, 126, 125, 123, 122, 121, 119,
|
||||
118, 117, 115, 114, 112, 111, 110, 108,
|
||||
107, 106, 104, 103, 101, 100, 99, 97,
|
||||
96, 94, 93, 92, 90, 89, 88, 86,
|
||||
85, 83, 82, 81, 79, 78, 77, 75,
|
||||
74, 72, 71, 70, 68, 67, 66, 64,
|
||||
64, 63, 61, 60, 59, 57, 56, 54,
|
||||
53, 52, 50, 49, 48, 46, 44, 44
|
||||
96, 94, 93, 92, 90, 89, 88, 86,
|
||||
85, 83, 82, 81, 79, 78, 77, 75,
|
||||
74, 72, 71, 70, 68, 67, 66, 64,
|
||||
64, 63, 61, 60, 59, 57, 56, 54,
|
||||
53, 52, 50, 49, 48, 46, 44, 44
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -96,9 +96,11 @@ void tsk_adc( )
|
||||
|
||||
if( adc_updated )
|
||||
{
|
||||
adc_updated = 0;
|
||||
|
||||
if( system_status.pwr_state == ON )
|
||||
{
|
||||
// Tune ///////////////////////////////////////
|
||||
// 3D /////////////////////////////////////////
|
||||
{
|
||||
// 似非ヒステリシス V2
|
||||
// ガリオームには適さない
|
||||
@ -155,6 +157,12 @@ void tsk_adc( )
|
||||
static u8 vol_old;
|
||||
static u8 force_update_vol;
|
||||
|
||||
if(( vreg_ctr[ VREG_C_VOL_DIGITAL ] & 0x80 ) != 0 )
|
||||
{
|
||||
// レジスタから強制セット
|
||||
adc_raw_vol = ( vreg_ctr[ VREG_C_VOL_DIGITAL ] * 4 );
|
||||
}
|
||||
|
||||
if( ( abs( adc_raw_vol - vol_old ) >= 2 ) // 生値でこれくらいずれたら更新(似非ヒステリシス)
|
||||
|| ( --force_update_vol == 0 ) ) // ポーリング
|
||||
{
|
||||
@ -172,8 +180,6 @@ void tsk_adc( )
|
||||
force_update_vol = 10;
|
||||
}
|
||||
}
|
||||
|
||||
adc_updated = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -43,18 +43,18 @@ const u8 BT_PARAM[][64] = {
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
},
|
||||
{ // ID = 5 2.7kohm ƒpƒi
|
||||
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
|
||||
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
|
||||
{ // ID = 5 2.7kohm ƒpƒi
|
||||
0x80, 0x30, 0x83, 0x90, 0x92, 0x00, 0xAE, 0x30,
|
||||
0xB0, 0x80, 0xB3, 0xA0, 0xB5, 0x00, 0xB5, 0x30,
|
||||
|
||||
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
|
||||
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
|
||||
0xB5, 0xC0, 0xB6, 0xA0, 0xB7, 0x90, 0xB9, 0x70,
|
||||
0xBC, 0x10, 0xC6, 0x90, 0xCA, 0x00, 0xD0, 0x90,
|
||||
|
||||
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
|
||||
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
|
||||
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x0D, 0x40,
|
||||
0x15, 0x00, 0x08, 0xF0, 0x80, 0x00, 0x00, 0x20,
|
||||
|
||||
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
|
||||
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
|
||||
0x1F, 0x80, 0x1D, 0x60, 0x0D, 0x50, 0x08, 0xF0,
|
||||
0x08, 0xA0, 0x04, 0xF0, 0x07, 0x70, 0x07, 0x70
|
||||
},
|
||||
{ // ID = 6 8.2kohm
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
@ -66,11 +66,13 @@ const u8 BT_PARAM[][64] = {
|
||||
/// パラメータ無し
|
||||
};
|
||||
|
||||
const unsigned char BT_PANA_RCOMP = 135;
|
||||
// static const float BT_PANA_TEMPCOUP = 0.3;
|
||||
// static const float BT_PANA_TEMPCODN = 0.5;
|
||||
// 256”{‚µ‚Ä‚ ‚é
|
||||
const unsigned char BT_PANA_TEMPCOUP = 77;
|
||||
const unsigned char BT_PANA_TEMPCODN = 128;
|
||||
// temp_co_xxxx‚Í256”{‚µ‚Ä‚¨‚
|
||||
const unsigned char BT_MAXELL_RCOMP = 135;
|
||||
const signed short BT_MAXELL_TEMPCOUP = -256* 0.15;
|
||||
const signed short BT_MAXELL_TEMPCODN = -256* 2.15;
|
||||
|
||||
|
||||
const unsigned char BT_PANA_RCOMP = 171;
|
||||
const signed short BT_PANA_TEMPCOUP = -256* 0.00;
|
||||
const signed short BT_PANA_TEMPCODN = -256* 2.30;
|
||||
#endif
|
||||
|
@ -29,7 +29,7 @@ enum model_
|
||||
MODEL_TS_BOARD,
|
||||
MODEL_SHIROBAKO,
|
||||
MODEL_JIKKI_NOBATT,
|
||||
MODEL_RESERVED1,
|
||||
MODEL_UNKNOWN,
|
||||
MODEL_RESERVED2,
|
||||
MODEL_RESERVED3,
|
||||
};
|
||||
|
@ -1,12 +1,13 @@
|
||||
#ifndef __config__
|
||||
#define __config__
|
||||
|
||||
//#define _debug_
|
||||
//#define _debug_led_
|
||||
#define _FORCE_OFF_1SEC_
|
||||
//#define _ALLOW_NOBATT_
|
||||
|
||||
|
||||
#define MCU_VER_MAJOR 0x00
|
||||
#define MCU_VER_MINOR 0x14
|
||||
#define MCU_VER_MINOR 0x17
|
||||
|
||||
//#define PM_CCIC_TIM
|
||||
|
||||
@ -20,16 +21,11 @@
|
||||
//#define _MODEL_TS0_
|
||||
// <20>ªTEG2 CPU <20>{ Type-C
|
||||
|
||||
//#define _MODEL_CTR_
|
||||
#define _MODEL_CTR_
|
||||
// <20>ªTS board, WM1,1 TS-CTRC
|
||||
|
||||
#define _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
// <20>ªTS board, WM1,1 TS-CTRC
|
||||
|
||||
|
||||
// “ÁŽêŽd—l //
|
||||
//#define _SW_HOME_ENABLE_
|
||||
#define _FOR_E3_
|
||||
|
||||
// ---------------------------------- //
|
||||
#ifdef _MODEL_TEG2_
|
||||
@ -56,11 +52,4 @@
|
||||
#define _SW_HOME_ENABLE_
|
||||
#endif
|
||||
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
#define _MODEL_CTR_
|
||||
#define _PMIC_CTR_
|
||||
#define _MCU_BSR_
|
||||
#define _SW_HOME_ENABLE_
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -148,7 +148,7 @@ __interrupt void int_iic_ctr( )
|
||||
reg_adrs = IICA;
|
||||
adrs_access_from = reg_adrs;
|
||||
tx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく
|
||||
if( reg_adrs != VREG_C_INFO )
|
||||
if( reg_adrs != VREG_CX_INFO ) // 特殊なバーストリードを行うため、割り込み駆動から外す
|
||||
{
|
||||
state = IIC_TX_OR_RX;
|
||||
}
|
||||
@ -202,15 +202,15 @@ __interrupt void int_iic_ctr( )
|
||||
switch( adrs_access_from )
|
||||
{
|
||||
case( VREG_C_ACC_HOSU_HIST ):
|
||||
case( VREG_C_INFO ):
|
||||
case( VREG_C_LED_NOTIFY_DATA ):
|
||||
case( VREG_C_LED_POW ):
|
||||
case( VREG_C_FREE_DATA ):
|
||||
case( VREG_CX_INFO ):
|
||||
case( VREG_CX_FREE_DATA ):
|
||||
break;
|
||||
case( VREG_C_FREE_ADRS ):
|
||||
if( reg_adrs == VREG_C_FREE_ADRS )
|
||||
case( VREG_CX_FREE_ADRS ):
|
||||
if( reg_adrs == VREG_CX_FREE_ADRS )
|
||||
{
|
||||
reg_adrs = VREG_C_FREE_DATA;
|
||||
reg_adrs = VREG_CX_FREE_DATA;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -83,18 +83,7 @@ void nop8()
|
||||
|
||||
static err iic_mcu_is_ready()
|
||||
{
|
||||
if( iic_mcu_initialized == 0 )
|
||||
{
|
||||
#ifdef _debug_
|
||||
iic_mcu_start( );
|
||||
#else
|
||||
return( ERR_ERR );
|
||||
while( 1 )
|
||||
{
|
||||
NOP();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
iic_mcu_start( );
|
||||
|
||||
while( iic_mcu_busy )
|
||||
{
|
||||
@ -185,15 +174,8 @@ err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest )
|
||||
{
|
||||
return( ERR_ERR );
|
||||
}
|
||||
;
|
||||
#else
|
||||
// 使用中なら帰る
|
||||
if( iic_mcu_initialized == 0 ){
|
||||
return(0x80);
|
||||
}
|
||||
if( iic_mcu_busy != 0 ){
|
||||
return( 3 );
|
||||
}
|
||||
#endif
|
||||
|
||||
// スタートコンディションとスレーブの呼び出し、レジスタアドレスの送信
|
||||
@ -309,12 +291,6 @@ err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src )
|
||||
}
|
||||
#if 0
|
||||
// 使用中なら帰る
|
||||
if( iic_mcu_initialized == 0 ){
|
||||
return(0x80);
|
||||
}
|
||||
if( iic_mcu_busy != 0 ){
|
||||
return( 3 );
|
||||
}
|
||||
#endif
|
||||
|
||||
// スタートコンディションとスレーブの呼び出し...
|
||||
@ -557,6 +533,10 @@ static void iic_mcu_send_sp( )
|
||||
======================================================== */
|
||||
void iic_mcu_start( )
|
||||
{
|
||||
if( iic_mcu_initialized )
|
||||
{
|
||||
return;
|
||||
}
|
||||
DST1 = 0;
|
||||
NOP( ); // 2clkもしくは、DSTn==0をポーリング
|
||||
NOP( );
|
||||
|
142
trunk/i2c_twl.c
142
trunk/i2c_twl.c
@ -12,7 +12,7 @@
|
||||
|
||||
#include "incs.h"
|
||||
#include "i2c_twl_defs.h"
|
||||
|
||||
#include "i2c_twl.h"
|
||||
|
||||
extern u8 vreg_twl[];
|
||||
|
||||
@ -45,6 +45,7 @@ extern u8 vreg_twl[];
|
||||
#define WREL WREL0
|
||||
#define WTIM WTIM0
|
||||
#define SMC SMC0
|
||||
#define TRC TRC0
|
||||
|
||||
#endif
|
||||
|
||||
@ -60,23 +61,22 @@ void IIC_twl_Init( void )
|
||||
#else
|
||||
|
||||
|
||||
|
||||
enum IIC_TWL_STATE{
|
||||
WAIT_ADRS = 0,
|
||||
WAIT_DATA,
|
||||
DATA_READED
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/*============================================================================*/
|
||||
u8 vreg_adrs;
|
||||
u8 pre_dat;
|
||||
|
||||
|
||||
u16 tot;
|
||||
|
||||
|
||||
// 注! ↓はマクロなので、returnはメインループに戻ります。
|
||||
#define wait_next { \
|
||||
tot = 0; \
|
||||
while( IICAIF != 1 ){ \
|
||||
if( SPD ){ \
|
||||
LREL = 1; \
|
||||
NOP(); \
|
||||
return; \
|
||||
} \
|
||||
tot++; \
|
||||
if( tot == 0 ){ \
|
||||
LREL = 1; \
|
||||
@ -88,74 +88,82 @@ u16 tot;
|
||||
|
||||
__interrupt void int_iic_twl( )
|
||||
{
|
||||
u8 temp;
|
||||
u8 vreg_adrs;
|
||||
u8 pre_dat;
|
||||
u8 rcvd;
|
||||
u16 tot;
|
||||
u8 state;
|
||||
|
||||
// WDT_Restart();
|
||||
// フラグ1回目 スレーブアドレス,R/W
|
||||
/* COI != 1 なら、割り込みはいらない
|
||||
if( COI != 1 ){ // 被呼び出し?
|
||||
LREL = 1; // 呼ばれたのは他のID
|
||||
return;
|
||||
}else{
|
||||
ACKE0 = 1; // 自動でackを返すようにする
|
||||
WREL = 1; // ウェイト解除して次のバイトを待つ
|
||||
}
|
||||
*/
|
||||
// ①
|
||||
WREL = 1; // ウェイト解除して次のバイトを待つ
|
||||
wait_next; // 1バイト受信完了を待つ
|
||||
|
||||
// 2回目 R/W レジスタアドレス
|
||||
IICAIF = 0;
|
||||
temp = IICA;
|
||||
WREL = 1;
|
||||
|
||||
vreg_adrs = adrs_table_twl_ext2int( temp );
|
||||
|
||||
// 3回目
|
||||
// スタートコンディションか、データ受信完了フラグ待ち
|
||||
WDT_Restart();
|
||||
state = WAIT_ADRS;
|
||||
|
||||
while( 1 )
|
||||
{
|
||||
u8 my_iics = IICS;
|
||||
u8 my_iics;
|
||||
|
||||
if( my_iics & 0x01 ) // SPD
|
||||
{ // 強制終了
|
||||
LREL = 1;
|
||||
return;
|
||||
}
|
||||
else if( my_iics & 0x02 ) // ( STD && !SPD )
|
||||
wait_next; // 1バイト受信完了を待つ
|
||||
|
||||
my_iics = IICS;
|
||||
IICAIF = 0;
|
||||
|
||||
if( my_iics & 0x02 ) // ( STD && !SPD )
|
||||
{
|
||||
// 送信 // (スタートコンディション検出)
|
||||
pre_dat = vreg_twl_read( vreg_adrs ); // mcu内部アドレスを渡す。一バイト目の準備 IICBに書き込むとウェイト解除
|
||||
|
||||
// 自局をRで呼ばれるのを待つ
|
||||
wait_next;
|
||||
IICAIF = 0;
|
||||
if( COI != 1 )
|
||||
{ // 被呼び出し?
|
||||
LREL = 1; // 呼ばれたのは他のID(あれ?)
|
||||
return;
|
||||
// スタートコンディションがきた
|
||||
if( !TRC ) // 送信方向フラグ 0:マイコンが受信
|
||||
{
|
||||
// ①’マイコンが応答できず、TWLがリトライしたときとか
|
||||
// ここに来るのはスレーブ呼び出しの時 //
|
||||
WREL = 1;
|
||||
state = WAIT_ADRS;
|
||||
/// レジスタアドレスが書かれるのを待つ
|
||||
}
|
||||
else
|
||||
{
|
||||
// ③R Rでのスレーブ呼び出し(リスタートコンディション) //
|
||||
IICA = vreg_twl_read( vreg_adrs ); // データ送信
|
||||
// ストップ待ち後、LREL = 1 にしないと、送信バッファが破壊されることがある
|
||||
state = DATA_READED;
|
||||
}
|
||||
IICA = pre_dat; // データを送る。ウェイトも解除される。
|
||||
|
||||
wait_next;
|
||||
// 4回目。(送信データ後の、ACK/NACK後) どうしても発生してしまう。
|
||||
IICAIF = 0; // おしまい
|
||||
LREL = 1;
|
||||
return;
|
||||
}
|
||||
else if( IICAIF && (( my_iics & 0x03 ) == 0 )) // !STD && !SPD )
|
||||
else if( ( my_iics & 0x03 ) == 0 ) // !STD && !SPD )
|
||||
{
|
||||
// 受信 //
|
||||
IICAIF = 0;
|
||||
temp = IICA;
|
||||
// 何らか受信
|
||||
rcvd = IICA;
|
||||
WREL = 1;
|
||||
|
||||
// 通常アクセス(ライト) //
|
||||
LREL = 1; // スタートコンディション待ちへ(連続書き込み未対応のため)
|
||||
vreg_twl_write( vreg_adrs, temp );
|
||||
return; // 受信おしまい //
|
||||
if( state == WAIT_ADRS )
|
||||
{
|
||||
// ②
|
||||
vreg_adrs = adrs_table_twl_ext2int( rcvd );
|
||||
/// データが書かれるか、リスタートで読み出されるのを待つ
|
||||
state = WAIT_DATA;
|
||||
}
|
||||
else if( state == DATA_READED )
|
||||
{
|
||||
// データ1バイト送信後発生する
|
||||
LREL = 1;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// ③W
|
||||
// データ書き込まれ
|
||||
LREL = 1; // スタートコンディション待ちへ(連続書き込み未対応のため)
|
||||
vreg_twl_write( vreg_adrs, rcvd );
|
||||
return; // 受信おしまい //
|
||||
}
|
||||
}
|
||||
else if( my_iics & 0x01 ) // SPD
|
||||
{
|
||||
// 終了
|
||||
LREL = 1;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
NOP();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "vreg_twl.h"
|
||||
|
||||
#include "i2c_mcu.h"
|
||||
#include "i2c_twl.h"
|
||||
|
||||
#include "rtc.h"
|
||||
|
||||
@ -32,6 +33,10 @@
|
||||
|
||||
#include "pm.h"
|
||||
|
||||
#include "sw.h"
|
||||
|
||||
#include "wdt.h"
|
||||
|
||||
//=========================================================
|
||||
|
||||
#endif
|
||||
|
448
trunk/led.c
448
trunk/led.c
@ -9,9 +9,6 @@
|
||||
#include "led.h"
|
||||
|
||||
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
|
||||
|
||||
// ========================================================
|
||||
// TPS0
|
||||
#define BIT_PRS012 ( 1 << 2 )
|
||||
@ -41,13 +38,16 @@ uni_info_LED info_LED;
|
||||
|
||||
|
||||
// 赤LEDの電池残量LEDの点滅パターン
|
||||
uni_led_red_batt_empty led_red_batt_empty;
|
||||
st_led_red_batt_empty led_red_batt_empty;
|
||||
|
||||
|
||||
u8* p_LED_duty_WiFi;
|
||||
|
||||
// フルカラーとの自動判別のため、一時領域としてもっておく
|
||||
u8 LED_duty_pow_blu_Mirror = 0;
|
||||
bit LED_pow_red_Mirror;
|
||||
|
||||
|
||||
bit infoLed_off;
|
||||
|
||||
// ========================================================
|
||||
#define led_fade_to( now, goal ) now = fade_to( now, goal )
|
||||
@ -136,7 +136,8 @@ void LED_init( )
|
||||
#endif
|
||||
|
||||
TO0 = 0; // タイマー動作中で、タイマー出力にしてないときのピンのラッチ。タイマー出力を使わないなら0
|
||||
TOE0 = 0b0000000011101110; // TOxをタイマーモジュールが制御?
|
||||
TOE0 = 0b0000000001101010; // TOxをタイマーモジュールが制御?
|
||||
|
||||
TS0 = 0b0000000011101111; // 動作開始
|
||||
|
||||
TDR00 = LED_BRIGHT_MAX - 1; // 周期 10bit
|
||||
@ -164,15 +165,17 @@ void LED_init( )
|
||||
if( system_status.reboot )
|
||||
{
|
||||
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO;
|
||||
LED_duty_pow_blu_Mirror = LED_BRIGHT_MAX;
|
||||
if( system_status.info_fullcolor )
|
||||
{
|
||||
LED_duty_pow_blu = LED_BRIGHT_MAX;
|
||||
LED_duty_pow_blu = LED_duty_pow_blu_Mirror;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_duty_old_pow_blu = LED_BRIGHT_MAX;
|
||||
LED_duty_old_pow_blu = LED_duty_pow_blu_Mirror;
|
||||
}
|
||||
}
|
||||
infoLed_off = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -212,102 +215,74 @@ enum LED_ILUM_MODE{
|
||||
======================================================== */
|
||||
void tsk_led_pow( )
|
||||
{
|
||||
// tsk_led_powを呼び出すrengeどんが、タスク関数の配列をリンク時
|
||||
// に決めるてROMにもっているので、ここで分岐するしかない orz
|
||||
if( system_status.info_fullcolor )
|
||||
// お知らせランプフルカラー版 /////////////////////
|
||||
switch ( vreg_ctr[VREG_C_LED_POW] )
|
||||
{
|
||||
// お知らせランプフルカラー版 /////////////////////
|
||||
switch ( vreg_ctr[VREG_C_LED_POW] )
|
||||
// 自動切り替え
|
||||
case ( LED_POW_ILM_AUTO ):
|
||||
switch ( system_status.pwr_state )
|
||||
{
|
||||
// 自動切り替え
|
||||
case ( LED_POW_ILM_AUTO ):
|
||||
switch ( system_status.pwr_state )
|
||||
{
|
||||
case SLEEP:
|
||||
led_pow_hotaru( );
|
||||
break;
|
||||
|
||||
case ON:
|
||||
led_pow_normal( );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_HOTARU ):
|
||||
case SLEEP:
|
||||
led_pow_hotaru( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ON ):
|
||||
default:
|
||||
case ON:
|
||||
led_pow_normal( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_OFF ):
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
LED_pow_red = 0;
|
||||
break;
|
||||
|
||||
|
||||
case ( LED_POW_ILM_ONLY_RED ):
|
||||
LED_duty_pow_blu = 0;
|
||||
LED_pow_red = 1;
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_BLUE ):
|
||||
LED_duty_pow_blu = LED_BRIGHT_MAX;
|
||||
LED_pow_red = 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_HOTARU ):
|
||||
led_pow_hotaru( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ON ):
|
||||
default:
|
||||
led_pow_normal( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_OFF ):
|
||||
led_fade_to( LED_duty_pow_blu_Mirror, 0 );
|
||||
LED_pow_red_Mirror = 0;
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_RED ):
|
||||
LED_duty_pow_blu_Mirror = 0;
|
||||
LED_pow_red_Mirror = 1;
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_BLUE ):
|
||||
LED_duty_pow_blu_Mirror = LED_BRIGHT_MAX;
|
||||
LED_pow_red_Mirror = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
// 実際にLEDの更新
|
||||
if( system_status.info_fullcolor )
|
||||
{
|
||||
LED_duty_pow_blu = LED_duty_pow_blu_Mirror;
|
||||
LED_pow_red = LED_pow_red_Mirror;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 旧仕様 /////////////////////////////////////////
|
||||
switch ( vreg_ctr[VREG_C_LED_POW] )
|
||||
LED_duty_old_pow_blu = LED_duty_pow_blu_Mirror;
|
||||
LED_old_pow_red = LED_pow_red_Mirror;
|
||||
}
|
||||
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_EMPTY )
|
||||
{
|
||||
if( system_status.info_fullcolor )
|
||||
{
|
||||
// 自動切り替え
|
||||
case ( LED_POW_ILM_AUTO ):
|
||||
switch ( system_status.pwr_state )
|
||||
{
|
||||
case SLEEP:
|
||||
led_pow_hotaru_old( );
|
||||
break;
|
||||
|
||||
case ON:
|
||||
led_pow_normal_old( );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_HOTARU ):
|
||||
led_pow_hotaru_old( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ON ):
|
||||
default:
|
||||
led_pow_normal_old( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_OFF ):
|
||||
led_fade_to( LED_duty_old_pow_blu, 0 );
|
||||
led_fade_to( LED_duty_old_pow_red, 0 );
|
||||
break;
|
||||
|
||||
|
||||
case ( LED_POW_ILM_ONLY_RED ):
|
||||
LED_duty_old_pow_blu = 0;
|
||||
LED_duty_old_pow_red = LED_BRIGHT_MAX;
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_BLUE ):
|
||||
LED_duty_old_pow_blu = LED_BRIGHT_MAX;
|
||||
LED_duty_old_pow_red = 0;
|
||||
break;
|
||||
LED_duty_notify_blu = 0;
|
||||
LED_duty_notify_grn = 0;
|
||||
LED_duty_notify_red = LED_pow_red_Mirror ? 255: 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_duty_old_NOTIFY = LED_pow_red_Mirror ? 255: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -327,27 +302,24 @@ static void led_pow_normal( )
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_EMPTY )
|
||||
{
|
||||
// 赤点滅
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
led_fade_to( LED_duty_pow_blu_Mirror, 0 );
|
||||
|
||||
// 赤の点滅パターンも指定できる
|
||||
delay += 1;
|
||||
if( delay < 16 ) // フレームの保持時間稼ぎ
|
||||
if( delay < 64 ) // フレームの保持時間稼ぎ
|
||||
{
|
||||
return;
|
||||
}
|
||||
delay = 0;
|
||||
|
||||
if( ( led_red_batt_empty.bits & ( 1 << red_blink_poi )) != 1 )
|
||||
if( led_red_batt_empty.dats[ red_blink_poi / 8 ] & ( 1 << ( red_blink_poi % 8 )) )
|
||||
{
|
||||
LED_pow_red = 1;
|
||||
LED_duty_notify_red = 255;
|
||||
LED_pow_red_Mirror = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_pow_red = 0;
|
||||
LED_duty_notify_red = 0;
|
||||
LED_pow_red_Mirror = 0;
|
||||
}
|
||||
|
||||
red_blink_poi += 1;
|
||||
if( red_blink_poi >= 32 )
|
||||
{
|
||||
@ -357,78 +329,18 @@ static void led_pow_normal( )
|
||||
else if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
// 赤点灯
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
LED_pow_red = 1;
|
||||
return;
|
||||
|
||||
led_fade_to( LED_duty_pow_blu_Mirror, 0 );
|
||||
LED_pow_red_Mirror = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 青点灯
|
||||
led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] );
|
||||
LED_pow_red = 0;
|
||||
led_fade_to( LED_duty_pow_blu_Mirror, vreg_ctr[VREG_C_LED_BRIGHT] );
|
||||
LED_pow_red_Mirror = 0;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* ========================================================
|
||||
電池残量で、 青→赤→赤点滅
|
||||
======================================================== */
|
||||
static void led_pow_normal_old( )
|
||||
{
|
||||
static u8 state;
|
||||
static u8 red_blink_poi;
|
||||
|
||||
u8 temp;
|
||||
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_EMPTY )
|
||||
{
|
||||
// 赤点滅
|
||||
led_fade_to( LED_duty_old_pow_blu, 0 );
|
||||
|
||||
state += 1;
|
||||
if( state < 16 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
state = 0;
|
||||
|
||||
if( ( led_red_batt_empty.bits & ( 1 << red_blink_poi )) != 1 )
|
||||
{
|
||||
LED_duty_old_pow_red = LED_BRIGHT_MAX;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_duty_old_pow_red = LED_BRIGHT_MAX;
|
||||
}
|
||||
|
||||
red_blink_poi += 1;
|
||||
if( red_blink_poi >= 32 )
|
||||
{
|
||||
red_blink_poi = 0;
|
||||
}
|
||||
}
|
||||
else if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
// 赤点灯
|
||||
led_fade_to( LED_duty_old_pow_blu, 0 );
|
||||
LED_duty_old_pow_red = LED_BRIGHT_MAX;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 青点灯
|
||||
led_fade_to( LED_duty_old_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] );
|
||||
LED_pow_red = 0;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
ホタルパターン
|
||||
======================================================== */
|
||||
@ -455,12 +367,12 @@ static void led_pow_hotaru( )
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
blue_to = 0;
|
||||
LED_pow_red = 1;
|
||||
LED_pow_red_Mirror = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
blue_to = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||
LED_pow_red = 0;
|
||||
LED_pow_red_Mirror = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -468,7 +380,7 @@ static void led_pow_hotaru( )
|
||||
// フェードアウト
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
LED_pow_red = 0;
|
||||
LED_pow_red_Mirror = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -478,19 +390,19 @@ static void led_pow_hotaru( )
|
||||
}
|
||||
|
||||
// LED更新
|
||||
if( LED_duty_pow_blu != blue_to )
|
||||
if( LED_duty_pow_blu_Mirror != blue_to )
|
||||
{
|
||||
if( LED_duty_pow_blu > blue_to )
|
||||
if( LED_duty_pow_blu_Mirror > blue_to )
|
||||
{
|
||||
LED_duty_pow_blu -= 1;
|
||||
LED_duty_pow_blu_Mirror -= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_duty_pow_blu += 2;
|
||||
LED_duty_pow_blu_Mirror += 2;
|
||||
}
|
||||
}
|
||||
|
||||
if( LED_duty_pow_blu == blue_to )
|
||||
if( LED_duty_pow_blu_Mirror == blue_to )
|
||||
{
|
||||
state += 1;
|
||||
}
|
||||
@ -500,80 +412,6 @@ static void led_pow_hotaru( )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
ホタルパターン
|
||||
======================================================== */
|
||||
static void led_pow_hotaru_old( )
|
||||
{
|
||||
static u8 delay;
|
||||
static u8 state;
|
||||
static u16 blue_to;
|
||||
|
||||
if( delay != 0 )
|
||||
{
|
||||
delay -= 1;
|
||||
return;
|
||||
}
|
||||
|
||||
delay = 4;
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
// フェードイン
|
||||
case ( 0 ):
|
||||
case ( 2 ):
|
||||
case ( 4 ):
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
blue_to = 0;
|
||||
LED_duty_old_pow_red = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||
}
|
||||
else
|
||||
{
|
||||
blue_to = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||
LED_duty_old_pow_red = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// フェードアウト
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
LED_duty_old_pow_red = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
blue_to = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// LED更新
|
||||
if( LED_duty_old_pow_blu != blue_to )
|
||||
{
|
||||
if( LED_duty_old_pow_blu > blue_to )
|
||||
{
|
||||
LED_duty_old_pow_blu -= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_duty_old_pow_blu += 2;
|
||||
}
|
||||
}
|
||||
|
||||
if( LED_duty_old_pow_blu == blue_to )
|
||||
{
|
||||
state += 1;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
* 割り込みそのものは使いません *
|
||||
LED_Wifi 3
|
||||
@ -680,48 +518,74 @@ void tsk_led_notify( )
|
||||
return;
|
||||
}
|
||||
|
||||
// 次のフレームに進める?
|
||||
if( time_to_next_frame == 0 )
|
||||
if( system_status.pwr_state == ON_TRIG )
|
||||
{
|
||||
time_to_next_frame = info_LED.info_LED.term;
|
||||
LED_duty_notify_blu = 0;
|
||||
LED_duty_notify_red = 0;
|
||||
LED_duty_notify_grn = 0;
|
||||
LED_dim_status_info_R.to = 0;
|
||||
LED_dim_status_info_G.to = 0;
|
||||
LED_dim_status_info_B.to = 0;
|
||||
LED_dim_status_info_R.now = 0;
|
||||
LED_dim_status_info_G.now = 0;
|
||||
LED_dim_status_info_B.now = 0;
|
||||
}
|
||||
|
||||
// 最後のフレームリピート( bool )
|
||||
if( frame >= NOTIFY_LED_TERM )
|
||||
if( !infoLed_off )
|
||||
{
|
||||
// 次のフレームに進める?
|
||||
if( time_to_next_frame == 0 )
|
||||
{
|
||||
if( info_LED.info_LED.last_loop == 255 )
|
||||
time_to_next_frame = info_LED.info_LED.term;
|
||||
|
||||
// 最後のフレームリピート( bool )
|
||||
if( frame >= NOTIFY_LED_TERM -1 )
|
||||
{
|
||||
vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( loops_to_go != 0 )
|
||||
if( info_LED.info_LED.last_loop == 255 )
|
||||
{
|
||||
loops_to_go -= 1;
|
||||
vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP;
|
||||
}
|
||||
else
|
||||
{
|
||||
loops_to_go = info_LED.info_LED.last_loop;
|
||||
frame = 0;
|
||||
if( loops_to_go != 0 )
|
||||
{
|
||||
loops_to_go -= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
loops_to_go = info_LED.info_LED.last_loop;
|
||||
frame = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP;
|
||||
frame = (( frame + 1 ) & 0x1F );
|
||||
}
|
||||
|
||||
LED_dim_status_info_R.to = info_LED.info_LED.red[frame] * 128;
|
||||
LED_dim_status_info_G.to = info_LED.info_LED.grn[frame] * 128;
|
||||
LED_dim_status_info_B.to = info_LED.info_LED.blu[frame] * 128;
|
||||
|
||||
// グラデーションのデルタを計算
|
||||
LED_dim_status_info_R.delta = (( LED_dim_status_info_R.to - LED_dim_status_info_R.now ) ) / info_LED.info_LED.fade_time;
|
||||
LED_dim_status_info_G.delta = (( LED_dim_status_info_G.to - LED_dim_status_info_G.now ) ) / info_LED.info_LED.fade_time;
|
||||
LED_dim_status_info_B.delta = (( LED_dim_status_info_B.to - LED_dim_status_info_B.now ) ) / info_LED.info_LED.fade_time;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP;
|
||||
frame += 1;
|
||||
}
|
||||
|
||||
LED_dim_status_info_R.to = info_LED.info_LED.red[frame] * 128;
|
||||
LED_dim_status_info_G.to = info_LED.info_LED.grn[frame] * 128;
|
||||
LED_dim_status_info_B.to = info_LED.info_LED.blu[frame] * 128;
|
||||
|
||||
// グラデーションのデルタを計算
|
||||
LED_dim_status_info_R.delta = (( LED_dim_status_info_R.to - LED_dim_status_info_R.now ) ) / info_LED.info_LED.fade_time;
|
||||
LED_dim_status_info_G.delta = (( LED_dim_status_info_G.to - LED_dim_status_info_G.now ) ) / info_LED.info_LED.fade_time;
|
||||
LED_dim_status_info_B.delta = (( LED_dim_status_info_B.to - LED_dim_status_info_B.now ) ) / info_LED.info_LED.fade_time;
|
||||
|
||||
time_to_next_frame -= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// フェードアウトさせる
|
||||
LED_dim_status_info_R.to = 0;
|
||||
LED_dim_status_info_G.to = 0;
|
||||
LED_dim_status_info_B.to = 0;
|
||||
LED_dim_status_info_R.delta = 0 - LED_dim_status_info_R.now / 64;
|
||||
LED_dim_status_info_G.delta = 0 - LED_dim_status_info_G.now / 64;
|
||||
LED_dim_status_info_B.delta = 0 - LED_dim_status_info_B.now / 64;
|
||||
}
|
||||
time_to_next_frame -= 1;
|
||||
|
||||
if( system_status.info_fullcolor )
|
||||
{
|
||||
@ -749,7 +613,7 @@ void tsk_led_cam( )
|
||||
static u8 state_led_cam = 0;
|
||||
static u8 task_interval;
|
||||
static u8 state_led_cam_twl;
|
||||
u8 temp_led_brightness;
|
||||
u8 LED_CAM_mirror;
|
||||
|
||||
if( task_interval != 0 )
|
||||
{
|
||||
@ -764,24 +628,24 @@ void tsk_led_cam( )
|
||||
{
|
||||
case ( CAM_LED_OFF ):
|
||||
default:
|
||||
temp_led_brightness = 0;
|
||||
LED_CAM_mirror = 0;
|
||||
state_led_cam = 0;
|
||||
break;
|
||||
|
||||
case ( CAM_LED_ON ):
|
||||
temp_led_brightness = 1;
|
||||
LED_CAM_mirror = 1;
|
||||
state_led_cam = 0;
|
||||
break;
|
||||
|
||||
case ( CAM_LED_BLINK ):
|
||||
if( state_led_cam == 0 )
|
||||
{
|
||||
temp_led_brightness = 1;
|
||||
LED_CAM_mirror = 1;
|
||||
state_led_cam = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
temp_led_brightness = 0;
|
||||
LED_CAM_mirror = 0;
|
||||
state_led_cam = 0;
|
||||
}
|
||||
task_interval = 250;
|
||||
@ -790,7 +654,7 @@ void tsk_led_cam( )
|
||||
case ( CAM_LED_ON_PLUSE ):
|
||||
if( state_led_cam == 0 )
|
||||
{
|
||||
temp_led_brightness = 1;
|
||||
LED_CAM_mirror = 1;
|
||||
state_led_cam = 1;
|
||||
task_interval = 250;
|
||||
}
|
||||
@ -803,7 +667,7 @@ void tsk_led_cam( )
|
||||
case ( CAM_LED_OFF_PLUSE ):
|
||||
if( state_led_cam == 0 )
|
||||
{
|
||||
temp_led_brightness = 0;
|
||||
LED_CAM_mirror = 0;
|
||||
state_led_cam = 1;
|
||||
task_interval = 250;
|
||||
}
|
||||
@ -816,19 +680,19 @@ void tsk_led_cam( )
|
||||
case ( CAM_LED_BY_TWL ):
|
||||
switch ( vreg_twl[ REG_TWL_INT_ADRS_CAM ] ){ // switchのネストとか…
|
||||
case( TWL_CAMLED_OFF ):
|
||||
temp_led_brightness = 0;
|
||||
LED_CAM_mirror = 0;
|
||||
state_led_cam = 0;
|
||||
break;
|
||||
|
||||
case( TWL_CAMLED_BLINK ):
|
||||
if( state_led_cam == 0 )
|
||||
{
|
||||
temp_led_brightness = 1;
|
||||
LED_CAM_mirror = 1;
|
||||
state_led_cam = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
temp_led_brightness = 0;
|
||||
LED_CAM_mirror = 0;
|
||||
state_led_cam = 0;
|
||||
}
|
||||
task_interval = 250;
|
||||
@ -837,7 +701,7 @@ void tsk_led_cam( )
|
||||
case( TWL_CAMLED_ON ):
|
||||
case( TWL_CAMLED_DEF_ON ):
|
||||
default:
|
||||
temp_led_brightness = 1;
|
||||
LED_CAM_mirror = 1;
|
||||
state_led_cam = 1;
|
||||
break;
|
||||
}
|
||||
@ -846,20 +710,10 @@ void tsk_led_cam( )
|
||||
// 輝度更新 //
|
||||
if( system_status.info_fullcolor )
|
||||
{
|
||||
LED_CAM = temp_led_brightness;
|
||||
LED_CAM = LED_CAM_mirror;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( temp_led_brightness == 0 )
|
||||
{
|
||||
LED_duty_old_CAM = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_duty_old_CAM = 255;
|
||||
}
|
||||
LED_old_CAM = LED_CAM_mirror;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
22
trunk/led.h
22
trunk/led.h
@ -1,8 +1,11 @@
|
||||
#ifndef __led__
|
||||
#define __led__
|
||||
|
||||
|
||||
|
||||
// ====================================
|
||||
|
||||
//#define LED_CHARGE P2.4 // PM‚Å’è‹`
|
||||
|
||||
// LED_DUTY
|
||||
#define LED_duty_pow_blu TDR05
|
||||
@ -21,13 +24,14 @@
|
||||
// 旧仕様 /////////////////////////////
|
||||
// LED_DUTY
|
||||
#define LED_duty_old_pow_blu TDR06
|
||||
#define LED_duty_old_pow_red TDR07
|
||||
//#define LED_duty_old_pow_red TDR07
|
||||
#define LED_duty_old_WiFi TDR03
|
||||
#define LED_duty_old_NOTIFY TDR05
|
||||
#define LED_duty_old_CAM TDR02
|
||||
//#define LED_duty_old_CAM TDR02
|
||||
#define LED_duty_old_3d TDR01
|
||||
// wifi2はPWMできません。
|
||||
//#define LED_CHARGE P2.4
|
||||
#define LED_old_pow_red P1.5
|
||||
#define LED_old_CAM P1.0
|
||||
|
||||
|
||||
|
||||
@ -60,8 +64,7 @@ enum LED_ILUM_MODE
|
||||
enum LED_MODE_TUNE
|
||||
{
|
||||
LED_TUNE_ILM_OFF = 0,
|
||||
LED_TUNE_ILM_ON,
|
||||
LED_TUNE_ILM_SVR
|
||||
LED_TUNE_ILM_ON
|
||||
};
|
||||
|
||||
|
||||
@ -119,14 +122,9 @@ extern uni_info_LED info_LED;
|
||||
// 赤LED 点滅向け //
|
||||
typedef struct{
|
||||
u8 dats[4];
|
||||
}st_u8s4;
|
||||
}st_led_red_batt_empty;
|
||||
|
||||
typedef union{
|
||||
unsigned long bits;
|
||||
st_u8s4 dats;
|
||||
}uni_led_red_batt_empty;
|
||||
|
||||
extern uni_led_red_batt_empty led_red_batt_empty;
|
||||
extern st_led_red_batt_empty led_red_batt_empty;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -236,7 +236,7 @@ void hdwinit2( )
|
||||
PM3 = 0b11110000; // P31,32は簡易I2C
|
||||
PM14 = 0b11111100; // debugger[1] とりあえず出力
|
||||
|
||||
P1 = 0b00000000;
|
||||
P1 = 0b10000000;
|
||||
P2 = 0b00000000;
|
||||
P4 = 0b00000000;
|
||||
P5 = 0b00000000;
|
||||
|
@ -41,8 +41,10 @@ void main_loop( void )
|
||||
iic_mcu_start( );
|
||||
EI( );
|
||||
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
if( system_status.reboot )
|
||||
{
|
||||
// リブート時は電源onに上書き
|
||||
#ifdef _PMIC_TWL_
|
||||
if( RESET1_n )
|
||||
#else
|
||||
@ -52,14 +54,8 @@ void main_loop( void )
|
||||
system_status.pwr_state = ON_TRIG;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// リブート時は実行されない
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
}
|
||||
|
||||
vreg_ctr_init( );
|
||||
vreg_twl_init( );
|
||||
|
||||
read_dipsw( ); // 特定スイッチで何かするか?
|
||||
|
||||
|
161
trunk/pm.c
161
trunk/pm.c
@ -28,8 +28,8 @@ u8 rcomp;
|
||||
// float temp_co_up;
|
||||
// float temp_co_dn;
|
||||
// 256倍してある
|
||||
unsigned char temp_co_up;
|
||||
unsigned char temp_co_dn;
|
||||
s16 temp_co_up;
|
||||
s16 temp_co_dn;
|
||||
BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED;
|
||||
|
||||
u8 reg_shadow; // NTR PMIC レジスタミラー
|
||||
@ -174,15 +174,8 @@ err PM_BL_set( u8 dat )
|
||||
intset |= REG_BIT_BL_L_OFF;
|
||||
}
|
||||
|
||||
/*
|
||||
SoCがPWMを出すようレジスタをセットしてから遅延が有るため、ステータスを先に
|
||||
更新してしまう。
|
||||
// Write
|
||||
iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, blset );
|
||||
if( blset != 0x00 ){
|
||||
wait_ms( 10 );
|
||||
}
|
||||
*/
|
||||
// SoCがPWMを出すようレジスタをセットしてから遅延が有るため、ステータスを先に
|
||||
// 更新してしまう。
|
||||
vreg_ctr[VREG_C_STATUS] = (( vreg_ctr[VREG_C_STATUS] & 0b10011111 )
|
||||
| ( (( blset << 6 ) | ( blset << 4 )) & 0b01100000 ));
|
||||
// PMICのBLのビットと、MCUのSTATUSレジスタのビット位置が逆なため入れ替え
|
||||
@ -205,6 +198,7 @@ SoC
|
||||
/// シャットダウンすることがある
|
||||
{
|
||||
wait_ms( 16 );
|
||||
// wait_ms( 84 ); ミツミの1stバグ回避
|
||||
}
|
||||
iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, blset );
|
||||
|
||||
@ -634,16 +628,15 @@ void tsk_batt( )
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
// 充電 ///////////////////////////
|
||||
// 温度付きヒステリシス
|
||||
if(( 86 < vreg_ctr[VREG_C_BT_TEMP] )
|
||||
&& ( vreg_ctr[VREG_C_BT_TEMP] < 185 ))
|
||||
if(( 86 < raw_adc_temperature )
|
||||
&& ( raw_adc_temperature < 185 ))
|
||||
{
|
||||
temp_zone_charge_enable = 1; // 充電許可
|
||||
}
|
||||
else if(( vreg_ctr[VREG_C_BT_TEMP] < 70 )
|
||||
|| ( 189 < vreg_ctr[VREG_C_BT_TEMP] ))
|
||||
else if(( raw_adc_temperature < 70 )
|
||||
|| ( 189 < raw_adc_temperature ))
|
||||
{
|
||||
temp_zone_charge_enable = 0; // 充電禁止
|
||||
}
|
||||
@ -655,25 +648,16 @@ void tsk_batt( )
|
||||
if(( temp_zone_charge_enable == 1 )
|
||||
&& ( battery_manufacturer <= BT_VENDER_6 ))
|
||||
{
|
||||
# ifndef _MODEL_WM0_
|
||||
#ifndef _MODEL_WM0_
|
||||
// CHG_ENABLEピンは /WL_RST に配線されているので
|
||||
BT_CHG_ENABLE(); // 温度範囲OKで充電再開
|
||||
}
|
||||
else
|
||||
{
|
||||
BT_CHG_DISABLE(); // 温度危険! 充電停止
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
// 温度無視して充電
|
||||
# ifndef _MODEL_WM0_
|
||||
// CHG_ENABLEピンは /WL_RST に配線されているので
|
||||
BT_CHG_ENABLE(); // 温度範囲OKで充電再開
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
// 充電 //
|
||||
// →割り込み。miscの中でよろしくやってくれている。
|
||||
@ -720,6 +704,8 @@ void BT_init( )
|
||||
}dat_16;
|
||||
|
||||
|
||||
// BT_DET_P = 1; // チャージに時間が掛かるので、先に上げておく
|
||||
// BT_TEMP_P = 1;
|
||||
|
||||
// 電池温度測定(TS,白箱判定も兼ねる) //
|
||||
while( ADCEN != 0 )
|
||||
@ -783,7 +769,7 @@ void BT_init( )
|
||||
else
|
||||
{
|
||||
// 実機、バッテリ無し
|
||||
system_status.model = MODEL_JIKKI_NOBATT;
|
||||
system_status.model = MODEL_UNKNOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -799,9 +785,11 @@ void BT_init( )
|
||||
else
|
||||
{
|
||||
// 実機、残量IC NACK( バッテリ無しまたは残量IC故障 )
|
||||
// 現状では、起動はさせとくが…
|
||||
// todo?
|
||||
#ifdef _ALLOW_NOBATT_
|
||||
system_status.model = MODEL_JIKKI;
|
||||
#else
|
||||
system_status.model = MODEL_JIKKI_NOBATT; // 起動させない
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -824,9 +812,14 @@ void BT_init( )
|
||||
{
|
||||
iic_mcu_set_wo_dma( );
|
||||
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM, 64, &BT_PARAM[ battery_manufacturer ] );
|
||||
|
||||
rcomp = BT_PANA_RCOMP;
|
||||
temp_co_up = BT_PANA_TEMPCOUP;
|
||||
temp_co_dn = BT_PANA_TEMPCODN;
|
||||
/*
|
||||
todo
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
// 6. 150ms以上待つ
|
||||
@ -859,7 +852,6 @@ void BT_init( )
|
||||
BT_temp_update( ); // 温度のtemp。 残量ICに行きます
|
||||
}
|
||||
|
||||
|
||||
// どの機体で走ってても不可を同じくらいにするため、ADCタスクを登録
|
||||
// 電池温度監視スタート
|
||||
raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); // 温度のtemp。
|
||||
@ -875,7 +867,7 @@ void BT_init( )
|
||||
|
||||
|
||||
|
||||
|
||||
extern u16 _dbg_rcomp;
|
||||
/* ========================================================
|
||||
raw_adc_temperatureに入っている値を℃に変換するとともに、
|
||||
・レジスタにセット
|
||||
@ -886,8 +878,8 @@ task_status_immed BT_temp_update( )
|
||||
static u8 count = 0; // たまにしか書きに行かない
|
||||
|
||||
static u8 rawdat_old;
|
||||
static unsigned long temperature;
|
||||
u16 newrcomp;
|
||||
static s16 temperature;
|
||||
s16 newrcomp;
|
||||
|
||||
/*
|
||||
サーミスタ - 10kΩ分圧点の時、
|
||||
@ -896,33 +888,28 @@ task_status_immed BT_temp_update( )
|
||||
TDK T = 81.406 - 111.81 x ratio
|
||||
*/
|
||||
if( rawdat_old != raw_adc_temperature ){
|
||||
DBG_P_n = 1;
|
||||
// temperature = 81.45 - 111.9 * raw_adc_temperature/256.0;
|
||||
// それぞれ256倍してある
|
||||
temperature = 20851 - 28646 * raw_adc_temperature;
|
||||
vreg_ctr[VREG_C_BT_TEMP] = (u8)temperature / 256;
|
||||
DBG_P_n = 0;
|
||||
temperature = ( 20851 - 112 * raw_adc_temperature + (256/2) ) /256;
|
||||
vreg_ctr[VREG_C_BT_TEMP] = temperature;
|
||||
}
|
||||
|
||||
// 時々書きにゆく
|
||||
if( count == 0 )
|
||||
{
|
||||
DBG_P_n = 1;
|
||||
newrcomp = 0;
|
||||
if( vreg_ctr[VREG_C_BT_TEMP] > 20 )
|
||||
{
|
||||
newrcomp = -( ( temperature - 20 ) * temp_co_up )/256;
|
||||
newrcomp = ( ( temperature - 20 ) * temp_co_up )/256;
|
||||
}
|
||||
else
|
||||
{
|
||||
newrcomp = -( ( temperature - 20 ) * temp_co_dn )/256;
|
||||
newrcomp = ( ( temperature - 20 ) * temp_co_dn )/256;
|
||||
}
|
||||
newrcomp += rcomp;
|
||||
newrcomp = rcomp + newrcomp;
|
||||
|
||||
newrcomp = swap_endian_16( (u16)newrcomp );
|
||||
// todo
|
||||
newrcomp = 0x9700;
|
||||
|
||||
DBG_P_n = 0;
|
||||
_dbg_rcomp = newrcomp;
|
||||
|
||||
if( iic_mcu_write
|
||||
( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &newrcomp ) == ERR_SUCCESS )
|
||||
@ -944,10 +931,15 @@ task_status_immed BT_temp_update( )
|
||||
BT_init()が実行されている必要があります。
|
||||
**********************************************************/
|
||||
void BT_get_left(){
|
||||
static u8 bt_left_state; // バッテリ残量で割り込みのため
|
||||
|
||||
volatile static u8 force_set;
|
||||
volatile static u8 force_data;
|
||||
|
||||
|
||||
if(( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 )
|
||||
{
|
||||
// 電池残量の取得
|
||||
static u8 bt_left_state; // バッテリ残量で割り込みのため
|
||||
static u8 bt_voltage_low_count; // todo どうにかせんとね
|
||||
u8 temp[2];
|
||||
|
||||
@ -956,12 +948,15 @@ void BT_get_left(){
|
||||
if( vreg_ctr[ VREG_C_BT_VOLTAGE ] > ( 3100 / 16 / 1.25 ) )
|
||||
{
|
||||
bt_voltage_low_count = 0;
|
||||
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp );
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
|
||||
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
bt_voltage_low_count += 1;
|
||||
|
||||
if( bt_voltage_low_count == 12 ) // およそ3sec
|
||||
if( bt_voltage_low_count == 3*4 ) // およそ3sec
|
||||
{
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
@ -972,45 +967,51 @@ void BT_get_left(){
|
||||
renge_task_interval_run_force = 1;
|
||||
}
|
||||
}
|
||||
|
||||
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp );
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
|
||||
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
|
||||
|
||||
// 残量で割り込み
|
||||
switch( bt_left_state )
|
||||
{
|
||||
case( 0 ): // 前回、バッテリーは十分にあった
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 1; // 突然バッテリ残量が減っても、Lo割り込みを入れる
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
break;
|
||||
|
||||
case( 1 ):
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY )
|
||||
{
|
||||
bt_left_state = 2;
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
|
||||
}
|
||||
|
||||
// todo
|
||||
if( force_set )
|
||||
{
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = force_data;
|
||||
}
|
||||
|
||||
// 残量で割り込み
|
||||
switch( bt_left_state )
|
||||
{
|
||||
case( 0 ): // 前回、バッテリーは十分にあった
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 1; // 突然バッテリ残量が減っても、Lo割り込みを入れる
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
break;
|
||||
|
||||
case( 1 ):
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY )
|
||||
{
|
||||
bt_left_state = 2;
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
else if( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY )
|
||||
{
|
||||
bt_left_state = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// PMIC-NTRに電池残量を教えてあげる
|
||||
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_BT,
|
||||
( vreg_ctr[ VREG_C_BT_REMAIN ] < 5 )? 1 : 0 ); // 1で電池切れ
|
||||
( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? 1 : 0 ); // 1で電池切れ
|
||||
|
||||
}
|
||||
|
@ -16,6 +16,11 @@
|
||||
|
||||
|
||||
|
||||
//=========================================================
|
||||
#define LED_CHARGE P2.4
|
||||
|
||||
|
||||
|
||||
//=========================================================
|
||||
enum PMIC_REG_ADRS
|
||||
{
|
||||
@ -134,6 +139,9 @@ task_status_immed tski_PM_LCD_off();
|
||||
task_status_immed tski_PM_BL_set();
|
||||
|
||||
|
||||
#define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); while( !BT_CHG_n ){;}; LED_CHARGE = 0; }
|
||||
|
||||
|
||||
// これを呼ぶ前に、現在温度を教えておく必要があります。
|
||||
#define PM_reset() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT, 0x00 ) )
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "pedometer.h"
|
||||
|
||||
#define VREG_C_FREE_SIZE 24
|
||||
#define VREG_C_FREE_SIZE 176
|
||||
|
||||
// 空いてるメモリ
|
||||
typedef struct {
|
||||
|
@ -17,8 +17,7 @@
|
||||
#include "..\config.h"
|
||||
#include "..\user_define.h"
|
||||
|
||||
|
||||
#define _renge_test_
|
||||
//#define _renge_test_
|
||||
|
||||
//******************************************************************************
|
||||
bit renge_flg_interval;
|
||||
|
25
trunk/sw.c
25
trunk/sw.c
@ -10,19 +10,23 @@
|
||||
#include "led.h"
|
||||
#include "pm.h"
|
||||
#include "rtc.h"
|
||||
|
||||
#include "sw.h"
|
||||
|
||||
|
||||
//=========================================================
|
||||
/*
|
||||
vreg_ctrから読みたいのでヘッダへ
|
||||
#define INTERVAL_TSK_SW 8
|
||||
#define CLICK_THRESHOLD 2
|
||||
|
||||
#ifdef _FOR_E3_
|
||||
#define HOLD_THREASHOLD (u8)( 800 / INTERVAL_TSK_SW )
|
||||
#ifdef _FORCE_OFF_1SEC_
|
||||
#define HOLD_THREASHOLD (u8)( 800 / INTERVAL_TSK_SW )
|
||||
#define FORCEOFF_THREASHOLD (u8)( 1000 / INTERVAL_TSK_SW )
|
||||
#else
|
||||
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
|
||||
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
|
||||
#define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW )
|
||||
#endif
|
||||
|
||||
*/
|
||||
|
||||
//=========================================================
|
||||
u8 SW_pow_count;
|
||||
@ -83,7 +87,8 @@ void tsk_sw( )
|
||||
{
|
||||
case ( ON_TRIG ):
|
||||
cnt_force_off = 0;
|
||||
break;
|
||||
SW_pow_count = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if( task_interval-- != 0 )
|
||||
@ -126,15 +131,11 @@ void tsk_sw( )
|
||||
|
||||
if( cnt_force_off != 0 )
|
||||
{
|
||||
#ifdef _FOR_E3_
|
||||
if( ++cnt_force_off == ( 200 / INTERVAL_TSK_SW ) )
|
||||
#else
|
||||
if( ++cnt_force_off == ( 4000 / INTERVAL_TSK_SW ) )
|
||||
#endif
|
||||
if( ++cnt_force_off >= vreg_ctr[ VREG_C_OFF_DELAY ] * 6 );
|
||||
{
|
||||
// タイムアウトによる強制OFF
|
||||
cnt_force_off = 0;
|
||||
vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_ONLY_RED;
|
||||
// vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_ONLY_RED;
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
renge_task_interval_run_force = 1;
|
||||
}
|
||||
|
13
trunk/sw.h
13
trunk/sw.h
@ -1,7 +1,20 @@
|
||||
#ifndef _sw_
|
||||
#define _sw_
|
||||
|
||||
#include "config.h"
|
||||
|
||||
extern u8 SW_pow_count;
|
||||
extern bit SW_pow_mask;
|
||||
|
||||
#define INTERVAL_TSK_SW 8
|
||||
#define CLICK_THRESHOLD 2
|
||||
|
||||
#ifdef _FORCE_OFF_1SEC_
|
||||
#define HOLD_THREASHOLD (u8)( 800 / INTERVAL_TSK_SW )
|
||||
#define FORCEOFF_THREASHOLD (u8)( 1000 / INTERVAL_TSK_SW / 6 )
|
||||
#else
|
||||
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
|
||||
#define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW / 6 )
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -211,6 +211,11 @@ task_status_immed do_command0( )
|
||||
// task_status_immed do_command1( )
|
||||
|
||||
|
||||
|
||||
u16 _dbg_rcomp;
|
||||
extern u8 raw_adc_temperature;
|
||||
|
||||
|
||||
extern u8 iic_burst_state;
|
||||
/* ========================================================
|
||||
デバッグ用にいろいろ読んできます。
|
||||
@ -259,7 +264,15 @@ task_status_immed tski_mcu_info_read()
|
||||
break;
|
||||
|
||||
case( 5 ):
|
||||
IICA = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION + 1 );
|
||||
IICA = (u8)(( _dbg_rcomp >> 8 ) & 0xFF );
|
||||
break;
|
||||
|
||||
case( 6 ):
|
||||
IICA = (u8)( _dbg_rcomp & 0xFF );
|
||||
break;
|
||||
|
||||
case( 7 ):
|
||||
IICA = raw_adc_temperature;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
122
trunk/task_sys.c
122
trunk/task_sys.c
@ -22,7 +22,7 @@ static void chk_emergencyExit();
|
||||
|
||||
|
||||
//=========================================================
|
||||
|
||||
extern bit infoLed_off;
|
||||
|
||||
|
||||
/* ========================================================
|
||||
@ -34,17 +34,16 @@ static void chk_emergencyExit();
|
||||
void tsk_sys( )
|
||||
{
|
||||
static u8 timeout = 0;
|
||||
static u8 bt_status_old;
|
||||
|
||||
switch ( system_status.pwr_state )
|
||||
{
|
||||
case OFF: //-------------------------------------------------------
|
||||
// スイッチ操作などで割り込みが発生し、スリープが解除されるとここに来ます。
|
||||
|
||||
switch ( system_status.poweron_reason )
|
||||
if( system_status.poweron_reason == NONE )
|
||||
{
|
||||
case( NONE ):
|
||||
// スイッチで電源on
|
||||
|
||||
if( SW_pow_count != 0 )
|
||||
{
|
||||
timeout = 0;
|
||||
@ -67,24 +66,24 @@ void tsk_sys( )
|
||||
}
|
||||
// 電源投入
|
||||
system_status.poweron_reason = PWSW;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
SW_pow_mask = 1;
|
||||
|
||||
timeout = 0;
|
||||
|
||||
BT_DET_P = 1; // チャージに時間が掛かるので先に上げておく
|
||||
BT_TEMP_P = 1;
|
||||
|
||||
// 電源投入 //
|
||||
BT_DET_P = 1; // チャージに時間が掛かるので、先に上げておく
|
||||
BT_TEMP_P = 1;
|
||||
iic_mcu_start( );
|
||||
|
||||
BT_init( ); // 実機やバッテリの判定、電池残量ICの設定
|
||||
|
||||
if( system_status.poweron_reason == EXT_POWER )
|
||||
{
|
||||
system_status.pwr_state = BT_CHARGE;
|
||||
return;
|
||||
}
|
||||
|
||||
if( system_status.model == MODEL_JIKKI_NOBATT )
|
||||
{
|
||||
renge_task_interval_run_force = 1;
|
||||
@ -142,28 +141,10 @@ void tsk_sys( )
|
||||
#endif
|
||||
|
||||
IIC_ctr_Init( );
|
||||
if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET )
|
||||
/*
|
||||
if( vreg_ctr[ VREG_C_IRQ0 ]
|
||||
| vreg_ctr[ VREG_C_IRQ0 ]
|
||||
| vreg_ctr[ VREG_C_IRQ0 ]
|
||||
| vreg_ctr[ VREG_C_IRQ0 ]
|
||||
*/
|
||||
!= 0 )
|
||||
{
|
||||
set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET );
|
||||
}
|
||||
{
|
||||
// WDTリセット時、I2Cの初期化まで割り込み保留
|
||||
// ほんとはここにべた書きしたくないが...
|
||||
if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET )
|
||||
/*
|
||||
if( vreg_ctr[ VREG_C_IRQ0 ]
|
||||
| vreg_ctr[ VREG_C_IRQ0 ]
|
||||
| vreg_ctr[ VREG_C_IRQ0 ]
|
||||
| vreg_ctr[ VREG_C_IRQ0 ]
|
||||
*/
|
||||
!= 0 )
|
||||
if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET ) != 0 )
|
||||
{
|
||||
set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET );
|
||||
}
|
||||
@ -192,6 +173,17 @@ void tsk_sys( )
|
||||
MK2L = ~INT_MSK2_WIFI_TX_KE3;
|
||||
#endif
|
||||
|
||||
// リブート時、ステータスを何となく更新
|
||||
if( system_status.reboot )
|
||||
{
|
||||
u8 bl_status_temp;
|
||||
|
||||
bl_status_temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL );
|
||||
vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 );
|
||||
set_bit( ( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD ) != 0 ),
|
||||
vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW );
|
||||
}
|
||||
|
||||
system_status.reboot = 0;
|
||||
system_status.pwr_state = ON;
|
||||
break;
|
||||
@ -228,19 +220,30 @@ void tsk_sys( )
|
||||
NOP();
|
||||
SLP_ACK = 0;
|
||||
#endif
|
||||
|
||||
system_status.pwr_state = ON_TRIG;
|
||||
renge_task_interval_run_force = 1;
|
||||
system_status.pwr_state = ON;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case OFF_TRIG: //---------------------------------------
|
||||
// LED消灯を待つ
|
||||
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF;
|
||||
if( LED_duty_pow_blu != 0 )
|
||||
vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_OFF;
|
||||
vreg_ctr[ VREG_C_LED_WIFI ] = WIFI_LED_OFF;
|
||||
vreg_ctr[ VREG_C_LED_TUNE ] = LED_TUNE_ILM_OFF;
|
||||
infoLed_off = 1;
|
||||
if( system_status.info_fullcolor )
|
||||
{
|
||||
return;
|
||||
if( LED_duty_pow_blu != 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( LED_duty_old_pow_blu != 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
LED_stop( );
|
||||
@ -290,17 +293,30 @@ void tsk_sys( )
|
||||
// no break //
|
||||
|
||||
case BT_CHARGE:
|
||||
system_status.pwr_state = OFF;
|
||||
if( !PM_EXTDC_n )
|
||||
{
|
||||
if( !bt_status_old ){
|
||||
iic_mcu_start( );
|
||||
BT_init( ); // 実機やバッテリの判定、電池残量ICの設定
|
||||
}
|
||||
bt_status_old = 1;
|
||||
|
||||
// アダプタ有り:充電温度監視
|
||||
BT_TEMP_P = 1;
|
||||
if( SW_pow_count >= 10 ) // 電源スイッチが押されるのを待つ
|
||||
{
|
||||
// 電源投入
|
||||
system_status.poweron_reason = PWSW;
|
||||
system_status.pwr_state = OFF;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bt_status_old = 0;
|
||||
// 省電力へ移行
|
||||
LED_CHARGE = 0;
|
||||
BT_TEMP_P = 0;
|
||||
system_status.poweron_reason = NONE;
|
||||
|
||||
PM_Chg_Stop();
|
||||
|
||||
while( RWST )
|
||||
{;}
|
||||
|
||||
@ -329,6 +345,9 @@ void tsk_sys( )
|
||||
CKC = 0b00001000;
|
||||
# endif
|
||||
RTCIMK = 0;
|
||||
system_status.pwr_state = OFF;
|
||||
BT_DET_P = 1; // チャージに時間が掛かるので、先に上げておく
|
||||
BT_TEMP_P = 1;
|
||||
}
|
||||
return;
|
||||
|
||||
@ -416,15 +435,22 @@ __interrupt void intp0_slp( )
|
||||
{ // SLP
|
||||
if( SLP_REQ ){
|
||||
system_status.pwr_state = SLEEP_TRIG;
|
||||
renge_task_interval_run_force = 1;
|
||||
}else{
|
||||
system_status.pwr_state = ON_TRIG;
|
||||
if( PM_BL_set() != ERR_SUCCESS ){
|
||||
renge_task_interval_run_force = 1;
|
||||
iic_mcu_stop();
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
}
|
||||
system_status.pwr_state = ON;
|
||||
PM_VDD_normMode();
|
||||
wait_ms( 5 ); // tdly_sw
|
||||
|
||||
#ifdef _MODEL_CTR_
|
||||
SLP_ACK = 1;
|
||||
NOP(); // 適当ウェイト
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
SLP_ACK = 0;
|
||||
#endif
|
||||
system_status.pwr_state = ON;
|
||||
}
|
||||
renge_task_interval_run_force = 1;
|
||||
}
|
||||
*/
|
||||
|
||||
|
@ -1,26 +1,12 @@
|
||||
#ifndef _USER_DEF_
|
||||
#define _USER_DEF_
|
||||
|
||||
#define IIC_SLV_ADDR_MONITOR 0x6E
|
||||
|
||||
#define IIC_T_SLAVEADDRESS 0x4A
|
||||
#define IIC_C_SLAVEADDRESS 0x4A
|
||||
|
||||
#define IIC_SLA_DCP 0x50
|
||||
|
||||
#ifdef _debug_
|
||||
|
||||
// 8ドットのLED
|
||||
# define IIC_SLA_8LEDS 0x42
|
||||
# define IIC_8LEDS_REG_DO 1
|
||||
# define IIC_8LEDS_REG_DI 2
|
||||
# define IIC_8LEDS_REG_DIR 3
|
||||
|
||||
// 7セグ 4バイト版
|
||||
# define IIC_SLA_DBG_MONITOR 0x44
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _debug_led_
|
||||
# define DBG_LED_on { PM2.4 = 0; P2.4 = 1; }
|
||||
# define DBG_LED_off { PM2.4 = 1; P2.4 = 0; }
|
||||
@ -171,7 +157,7 @@
|
||||
//#define LED_TUNE P5.2 // SLTO <20>© TO01
|
||||
//#define LED_POW2 P1.4 // TO06 ( <20>Â )
|
||||
//#define LED_POW1 P1.5 // TO07 ( <20>Ô )
|
||||
#define LED_CHARGE P2.4
|
||||
//#define LED_CHARGE P2.4
|
||||
|
||||
|
||||
#ifdef _MODEL_TEG2_
|
||||
@ -253,8 +239,6 @@
|
||||
#endif
|
||||
|
||||
|
||||
#define DBG_P_n P2.2
|
||||
|
||||
|
||||
#define KR_SW_POW ( 1 << 3 )
|
||||
#define KR_SW_WIFI ( 1 << 4 )
|
||||
|
169
trunk/vreg_ctr.c
169
trunk/vreg_ctr.c
@ -21,6 +21,8 @@ extern u8 iic_burst_state;
|
||||
|
||||
// ********************************************************
|
||||
u8 vreg_ctr[VREG_C_ENDMARK_];
|
||||
u8 vreg_free_adrs; // アドレス飛んでるのでしばらくはこれで
|
||||
|
||||
bit irq_readed; // AAA型のため。
|
||||
|
||||
|
||||
@ -38,22 +40,24 @@ extern task_status_immed tski_mcu_info_read();
|
||||
// 非ゼロの初期値の指定が必要なアドレス
|
||||
void vreg_ctr_init( )
|
||||
{
|
||||
vreg_ctr[VREG_C_LED_BRIGHT] = 0xFF;
|
||||
vreg_ctr[ VREG_C_LED_BRIGHT ] = 0xFF;
|
||||
|
||||
vreg_ctr[VREG_C_VCOM_T] = VCOM_DEFAULT_T;
|
||||
vreg_ctr[VREG_C_VCOM_B] = VCOM_DEFAULT_B;
|
||||
vreg_ctr[ VREG_C_VCOM_T ] = VCOM_DEFAULT_T;
|
||||
vreg_ctr[ VREG_C_VCOM_B ] = VCOM_DEFAULT_B;
|
||||
|
||||
vreg_ctr[ VREG_C_OFF_DELAY ] = FORCEOFF_THREASHOLD;
|
||||
}
|
||||
|
||||
void vreg_ctr_reset( )
|
||||
{
|
||||
#ifdef _PMIC_TWL_
|
||||
vreg_ctr[VREG_C_MCU_VER_MAJOR] = MCU_VER_MAJOR;
|
||||
vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR;
|
||||
#else
|
||||
vreg_ctr[VREG_C_MCU_VER_MAJOR] = MCU_VER_MAJOR | 0x10;
|
||||
vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR | 0x10;
|
||||
#endif
|
||||
vreg_ctr[VREG_C_MCU_VER_MINOR] = MCU_VER_MINOR;
|
||||
vreg_ctr[ VREG_C_MCU_VER_MINOR ] = MCU_VER_MINOR;
|
||||
|
||||
vreg_ctr[ VREG_C_LED_BRIGHT ] = 0x28,
|
||||
vreg_ctr[ VREG_C_VOL_DIGITAL ] = 0x20;
|
||||
vreg_ctr[ VREG_C_LED_POW ] = 0;
|
||||
vreg_ctr[ VREG_C_LED_WIFI ] = 0;
|
||||
vreg_ctr[ VREG_C_LED_CAM ] = 0;
|
||||
@ -62,7 +66,7 @@ void vreg_ctr_reset( )
|
||||
u8 i;
|
||||
for( i = 0; i < sizeof( uni_info_LED ); i++ )
|
||||
{
|
||||
info_LED.bindata[ iic_burst_state ] = 0;
|
||||
info_LED.bindata[ i ] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -91,28 +95,15 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_DBG1 ):
|
||||
case ( VREG_C_DBG2 ):
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_DBG3 ):
|
||||
if( ( vreg_ctr[VREG_C_DBG1] == 'j' )
|
||||
&& ( vreg_ctr[VREG_C_DBG2] == 'h' )
|
||||
case ( VREG_C_DBG03 ):
|
||||
if( ( vreg_ctr[VREG_C_DBG01] == 'j' )
|
||||
&& ( vreg_ctr[VREG_C_DBG02] == 'h' )
|
||||
&& ( data == 'l' ) )
|
||||
{
|
||||
renge_task_immed_add( tski_firm_update );
|
||||
IICAMK = 1;
|
||||
}
|
||||
vreg_ctr[ VREG_C_DBG3 ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_IRQ_MASK0 ):
|
||||
case ( VREG_C_IRQ_MASK1 ):
|
||||
case ( VREG_C_IRQ_MASK2 ):
|
||||
case ( VREG_C_IRQ_MASK3 ):
|
||||
case ( VREG_C_IRQ_MASK4 ):
|
||||
vreg_ctr[adrs] = data;
|
||||
vreg_ctr[ VREG_C_DBG03 ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_COMMAND0 ):
|
||||
@ -161,17 +152,6 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
}
|
||||
break;
|
||||
|
||||
case ( VREG_C_DBG20 ):
|
||||
case ( VREG_C_DBG21 ):
|
||||
case ( VREG_C_DBG22 ):
|
||||
case ( VREG_C_DBG23 ):
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_LED_BRIGHT ):
|
||||
vreg_ctr[ VREG_C_LED_BRIGHT ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_LED_POW ):
|
||||
if( iic_burst_state == 0 )
|
||||
{
|
||||
@ -180,7 +160,7 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
}
|
||||
else if( iic_burst_state < 5 )
|
||||
{
|
||||
led_red_batt_empty.dats.dats[ iic_burst_state -1 ] = data;
|
||||
led_red_batt_empty.dats[ iic_burst_state -1 ] = data;
|
||||
iic_burst_state += 1;
|
||||
}
|
||||
break;
|
||||
@ -198,7 +178,6 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
iic_burst_state += 1;
|
||||
}
|
||||
|
||||
|
||||
/// 非同期で動いているためここでは書かない。
|
||||
// 予約するだけでstopで書く
|
||||
case ( VREG_C_RTC_SEC ):
|
||||
@ -214,10 +193,6 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
set_rtc( adrs - VREG_C_RTC_SEC, data & 0x07 );
|
||||
break;
|
||||
|
||||
case ( VREG_C_RTC_DAY ):
|
||||
set_rtc( adrs - VREG_C_RTC_SEC, data & 0x3F );
|
||||
break;
|
||||
|
||||
case ( VREG_C_RTC_MONTH ):
|
||||
set_rtc( adrs - VREG_C_RTC_SEC, data & 0x1F );
|
||||
break;
|
||||
@ -250,11 +225,6 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
vreg_ctr[ VREG_C_RTC_ALARM_MONTH ] = ( data & 0x1F );
|
||||
break;
|
||||
|
||||
case ( VREG_C_RTC_ALARM_YEAR ):
|
||||
vreg_ctr[ VREG_C_RTC_ALARM_YEAR ] = data;
|
||||
break;
|
||||
|
||||
|
||||
case ( VREG_C_ACC_CONFIG ):
|
||||
renge_task_immed_add( acc_hosu_set );
|
||||
vreg_ctr[ VREG_C_ACC_CONFIG ] = data;
|
||||
@ -265,21 +235,11 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
vreg_ctr[ VREG_C_ACC_R_ADRS ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_ACC_W_ADRS ):
|
||||
vreg_ctr[ VREG_C_ACC_W_ADRS ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_ACC_W_BUF ):
|
||||
renge_task_immed_add( acc_write );
|
||||
vreg_ctr[ VREG_C_ACC_W_BUF ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_ACC_HOSU_L ):
|
||||
case ( VREG_C_ACC_HOSU_M ):
|
||||
case ( VREG_C_ACC_HOSU_H ):
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_ACC_HOSU_SETTING ):
|
||||
if( ( data & 0x01 ) != 0 )
|
||||
{
|
||||
@ -287,22 +247,19 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
}
|
||||
break;
|
||||
|
||||
case ( VREG_C_ACC_HOSU_HOUR_BOUNDARY ):
|
||||
vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_FREE_ADRS ):
|
||||
vreg_ctr[ VREG_C_FREE_ADRS ] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_FREE_DATA ):
|
||||
if( vreg_ctr[ VREG_C_FREE_ADRS ] < VREG_C_FREE_SIZE )
|
||||
case ( VREG_CX_FREE_DATA ):
|
||||
if( vreg_free_adrs < VREG_C_FREE_SIZE )
|
||||
{
|
||||
pool.vreg_c_ext.vreg_c_free[ vreg_ctr[ VREG_C_FREE_ADRS ] ] = data;
|
||||
vreg_ctr[ VREG_C_FREE_ADRS ] += 1;
|
||||
pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ] = data;
|
||||
vreg_free_adrs += 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( VREG_CX_FREE_ADRS ):
|
||||
vreg_free_adrs = data;
|
||||
break;
|
||||
|
||||
|
||||
case ( VREG_C_COMMAND3 ):
|
||||
switch ( data )
|
||||
{
|
||||
@ -320,7 +277,34 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
/*
|
||||
case ( VREG_C_IRQ_MASK0 ):
|
||||
case ( VREG_C_IRQ_MASK1 ):
|
||||
case ( VREG_C_IRQ_MASK2 ):
|
||||
case ( VREG_C_IRQ_MASK3 ):
|
||||
case ( VREG_C_IRQ_MASK4 ):
|
||||
case ( VREG_C_DBG01 ):
|
||||
case ( VREG_C_DBG02 ):
|
||||
case ( VREG_C_LED_BRIGHT ):
|
||||
case ( VREG_C_ACC_HOSU_L ):
|
||||
case ( VREG_C_ACC_HOSU_M ):
|
||||
case ( VREG_C_ACC_HOSU_H ):
|
||||
case ( VREG_C_ACC_HOSU_HOUR_BOUNDARY ):
|
||||
case ( VREG_C_FREE_ADRS ):
|
||||
case ( VREG_C_RTC_ALARM_YEAR ):
|
||||
case ( VREG_C_ACC_W_ADRS ):
|
||||
case ( VREG_C_VOL_DIGITAL ):
|
||||
case ( VREG_C_OFF_DELAY ):
|
||||
*/
|
||||
if( adrs < VREG_C_ENDMARK_ )
|
||||
{
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -350,10 +334,10 @@ u8 vreg_ctr_read( u8 adrs )
|
||||
{
|
||||
return( hosu_read() );
|
||||
}
|
||||
else if( adrs == VREG_C_FREE_DATA )
|
||||
else if( adrs == VREG_CX_FREE_DATA )
|
||||
{
|
||||
temp = pool.vreg_c_ext.vreg_c_free[ vreg_ctr[VREG_C_FREE_ADRS] ];
|
||||
vreg_ctr[VREG_C_FREE_ADRS] += 1;
|
||||
temp = pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ];
|
||||
// vreg_free_adrs += 1; // ここで加算してしまうとインデックスがずれる
|
||||
return( temp );
|
||||
}
|
||||
else if( adrs == VREG_C_RTC_SEC_FINE_L )
|
||||
@ -365,7 +349,7 @@ u8 vreg_ctr_read( u8 adrs )
|
||||
{
|
||||
return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) );
|
||||
}
|
||||
else if( adrs == VREG_C_INFO )
|
||||
else if( adrs == VREG_CX_INFO )
|
||||
{
|
||||
// I2C_mを使うので、ここからでは割り込みが使えなくて困る
|
||||
// なのでタスク登録する。
|
||||
@ -395,16 +379,20 @@ void vreg_ctr_after_read( u8 adrs )
|
||||
// 割り込みフラグはリードでクリア
|
||||
switch( adrs )
|
||||
{
|
||||
case VREG_C_IRQ0:
|
||||
case VREG_C_IRQ1:
|
||||
case VREG_C_IRQ2:
|
||||
case VREG_C_IRQ3:
|
||||
case VREG_C_IRQ4:
|
||||
case VREG_C_IRQ0:
|
||||
case VREG_C_IRQ1:
|
||||
case VREG_C_IRQ2:
|
||||
case VREG_C_IRQ3:
|
||||
case VREG_C_IRQ4:
|
||||
vreg_ctr[ adrs ] = 0;
|
||||
irq_readed = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
case VREG_CX_FREE_DATA:
|
||||
vreg_free_adrs += 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -434,14 +422,19 @@ void set_irq( u8 irqreg, u8 irq_flg )
|
||||
{
|
||||
u8 tot;
|
||||
|
||||
// DI();
|
||||
if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ){
|
||||
vreg_ctr[ irqreg ] |= irq_flg;
|
||||
IRQ0_neg; // 一瞬上げて...
|
||||
// EI();
|
||||
tot = 0;
|
||||
while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.なのでちゃんとあがるのを待つ & IRQ_mcu がLに縛られてると困る(基板不良)
|
||||
IRQ0_ast; // 落とし直す。
|
||||
if(( system_status.pwr_state == ON ) ||
|
||||
( system_status.pwr_state == SLEEP ) ||
|
||||
( system_status.pwr_state == SLEEP_TRIG ))
|
||||
{
|
||||
// DI();
|
||||
if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ){
|
||||
vreg_ctr[ irqreg ] |= irq_flg;
|
||||
IRQ0_neg; // 一瞬上げて...
|
||||
// EI();
|
||||
tot = 0;
|
||||
while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.なのでちゃんとあがるのを待つ & IRQ_mcu がLに縛られてると困る(基板不良)
|
||||
IRQ0_ast; // 落とし直す。
|
||||
}
|
||||
}
|
||||
// EI();
|
||||
}
|
||||
|
@ -152,9 +152,9 @@ enum VREG_C
|
||||
VREG_C_VCOM_T = 0x03,
|
||||
VREG_C_VCOM_B,
|
||||
|
||||
VREG_C_DBG1 = 0x05,
|
||||
VREG_C_DBG2,
|
||||
VREG_C_DBG3,
|
||||
VREG_C_DBG01 = 0x05,
|
||||
VREG_C_DBG02,
|
||||
VREG_C_DBG03,
|
||||
|
||||
VREG_C_TUNE = 0x08,
|
||||
VREG_C_SND_VOL,
|
||||
@ -181,12 +181,11 @@ enum VREG_C
|
||||
VREG_C_COMMAND0 = 0x20,
|
||||
VREG_C_COMMAND1,
|
||||
VREG_C_COMMAND2,
|
||||
VREG_C_COMMAND3, // 'r' でマイコンリセット
|
||||
VREG_C_COMMAND3, // 'r' でマイコンリセット、 'w' でWDTリセット
|
||||
|
||||
VREG_C_DBG20 = 0x24,
|
||||
VREG_C_DBG21,
|
||||
VREG_C_DBG22,
|
||||
VREG_C_DBG23,
|
||||
VREG_C_VOL_DIGITAL = 0x23,
|
||||
|
||||
VREG_C_OFF_DELAY = 0x24,
|
||||
|
||||
VREG_C_LED_BRIGHT = 0x28,
|
||||
VREG_C_LED_POW,
|
||||
@ -233,24 +232,17 @@ enum VREG_C
|
||||
VREG_C_ACC_HOSU_H,
|
||||
VREG_C_ACC_HOSU_SETTING,
|
||||
VREG_C_ACC_HOSU_HIST = 0x4F,
|
||||
VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50,
|
||||
|
||||
// とりあえず15バイトのスキマ
|
||||
|
||||
VREG_C_FREE_ADRS = 0x60,
|
||||
VREG_C_FREE_DATA,
|
||||
VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50,
|
||||
|
||||
VREG_C_ENDMARK_
|
||||
};
|
||||
#define VREG_C_INFO 0x7F
|
||||
|
||||
#define VREG_CX_INFO 0x7F
|
||||
#define VREG_CX_FREE_ADRS 0x60
|
||||
#define VREG_CX_FREE_DATA 0x61
|
||||
// VREG_C_AMBIENT_BRIGHTNESS = 0xXX,
|
||||
|
||||
|
||||
/*
|
||||
VREG_C_PM_INFO, // 未使用
|
||||
VREG_C_BT_INFO, // 未使用
|
||||
*/
|
||||
|
||||
/*============================================================================*/
|
||||
void vreg_ctr_init( );
|
||||
void vreg_ctr_reset( );
|
||||
|
@ -8,7 +8,6 @@ TWL
|
||||
#include "led.h"
|
||||
|
||||
#include "vreg_twl.h"
|
||||
|
||||
#include "vreg_ctr.h"
|
||||
|
||||
// ========================================================
|
||||
@ -28,9 +27,9 @@ extern bit twl_ver_read;
|
||||
void vreg_twl_init( )
|
||||
{
|
||||
vreg_twl[ REG_TWL_INT_ADRS_MODE ] = 0x03;
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] = 0;
|
||||
vreg_twl[ REG_TWL_ADRS_CAM ] = 0;
|
||||
vreg_twl[ REG_TWL_ADRS_TEMP0 ] = 0;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = 0;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_CAM ] = 0;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -110,9 +109,9 @@ u8 vreg_twl_read( u8 phy_adrs )
|
||||
vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] = 0x0B;
|
||||
}else if( vreg_ctr[ VREG_C_BT_REMAIN ] > 50 ){
|
||||
vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] = 0x07;
|
||||
}else if( vreg_ctr[ VREG_C_BT_REMAIN ] > 25 ){
|
||||
}else if( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_LO ){
|
||||
vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] = 0x03;
|
||||
}else if( vreg_ctr[ VREG_C_BT_REMAIN ] > 5 ){
|
||||
}else if( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY ){
|
||||
vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] = 0x01;
|
||||
}else{
|
||||
vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] = 0x00;
|
||||
|
@ -1,24 +1,28 @@
|
||||
C:\WINDOWS\system32\cmd.exe /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 -qvjwt -sainter_asm -zp -no 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 -qvjl2wt -sainter_asm -zp -no pm.c
|
||||
pm.c(67) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
pm.c(106) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
pm.c(180) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
pm.c(188) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
pm.c(484) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
pm.c(487) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
pm.c(894) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
pm.c(1015) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
batt_params.h(71) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
batt_params.h(72) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
batt_params.h(77) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
Compilation complete, 0 error(s) and 11 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 -qvjl2wt -sainter_asm -zp -no magic.c
|
||||
Compilation complete, 0 error(s) and 0 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\magic.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 -qvjwt -sainter_asm -zp -no vreg_ctr.c
|
||||
vreg_ctr.c(84) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(143) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(152) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(153) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(155) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(157) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(158) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(160) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(191) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(236) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(241) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(246) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
vreg_ctr.c(250) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
Compilation complete, 0 error(s) and 13 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_ctr.asm
|
||||
"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 -qvjl2wt -sainter_asm -zp -no task_sys.c
|
||||
task_sys.c(182) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||
task_sys.c(417) : 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\task_sys.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 -gb7EFBFFh -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 led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel
|
||||
Link complete, 0 error(s) and 0 warning(s) found.
|
||||
|
@ -78,10 +78,10 @@ Symbol Type=OFF
|
||||
Language=C
|
||||
Kanji=SJIS
|
||||
[Source]
|
||||
Geometry=285, 104, 812, 601
|
||||
Geometry=196, 23, 873, 815
|
||||
Window=Normal
|
||||
DispStart=60
|
||||
CaretPos=84,0
|
||||
DispStart=331
|
||||
CaretPos=335,0
|
||||
Mode=Normal
|
||||
DispFile=
|
||||
Address1=
|
||||
@ -139,19 +139,11 @@ SaveRange=Screen
|
||||
SaveStart=
|
||||
SaveEnd=
|
||||
Accumulative=ON
|
||||
[Source1]
|
||||
Geometry=75, 75, 812, 601
|
||||
Window=Normal
|
||||
DispStart=343
|
||||
CaretPos=357,23
|
||||
Mode=Normal
|
||||
DispFile=vreg_ctr.c
|
||||
Accumulative=ON
|
||||
[Assemble]
|
||||
Geometry=19, 497, 600, 400
|
||||
Window=Normal
|
||||
DispStart=704
|
||||
CaretPos=704,27
|
||||
DispStart=16664
|
||||
CaretPos=16664,27
|
||||
Address1=
|
||||
Address2=
|
||||
Address3=
|
||||
@ -822,7 +814,7 @@ L529=IICWL1
|
||||
L530=IICWH1
|
||||
L531=SVA1
|
||||
[Local Variable]
|
||||
Geometry=772, 680, 400, 244
|
||||
Geometry=860, 559, 400, 244
|
||||
Window=Normal
|
||||
Boundary=13041851
|
||||
Mode=Proper
|
||||
@ -891,8 +883,8 @@ PSW=1
|
||||
ES=1
|
||||
CS=1
|
||||
[Event Manager]
|
||||
Geometry=0, 0, 0, 0
|
||||
Window=Hide
|
||||
Geometry=50, 50, 500, 200
|
||||
Window=Normal
|
||||
Sort by=Unsort
|
||||
Detail=OFF
|
||||
[Event Set]
|
||||
@ -968,47 +960,64 @@ Count=0
|
||||
Geometry=884, 10, 440, 653
|
||||
Window=Normal
|
||||
Boundary=18088086
|
||||
0=.info_LED,.,N,A,+,1
|
||||
1=.list_id,P,N,A,+,1
|
||||
2=.TDR02,P,S,A,+,1
|
||||
3=.P4.2,P,S,A,+,1
|
||||
4=+pool,.,N,A,-,1
|
||||
5=.p_LED_duty_WiFi,.,N,A,+,1
|
||||
6=.system_status,.,N,A,+,1
|
||||
7=.psw,P,R,A,+,1
|
||||
8=.vreg_ctr,P,N,A,+,1
|
||||
9=.tasks_immed,P,N,A,+,1
|
||||
Line=10
|
||||
0=.p7.0,P,S,A,+,1
|
||||
1=.p5.1,P,S,A,+,1
|
||||
2=.pu7.0,P,S,A,+,1
|
||||
3=.pm7.0,P,S,A,+,1
|
||||
4=.pu5.1,P,S,A,+,1
|
||||
5=.pm5.1,P,S,A,+,1
|
||||
6=.temperature,D,N,A,+,1
|
||||
7=.raw_adc_temperature,D,N,A,+,1
|
||||
8=.info_LED,.,N,A,+,1
|
||||
9=.list_id,P,N,A,+,1
|
||||
10=.TDR02,P,S,A,+,1
|
||||
11=.P4.2,P,S,A,+,1
|
||||
12=.pool,.,N,A,+,1
|
||||
13=.p_LED_duty_WiFi,.,N,A,+,1
|
||||
14=.system_status,.,N,A,+,1
|
||||
15=.psw,P,R,A,+,1
|
||||
16=.vreg_ctr,P,N,A,+,1
|
||||
17=.tasks_immed,P,N,A,+,1
|
||||
18=.rcomp,D,N,A,+,1
|
||||
19=.temp_co_dn,D,N,A,+,1
|
||||
20=.raw_adc_temperature,P,N,A,+,1
|
||||
21=.temperature,D,N,A,+,1
|
||||
22=.temp_co_up,D,N,A,+,1
|
||||
Line=23
|
||||
[Quick Watch]
|
||||
0=iic_mcu_bus_status,P,A,1
|
||||
1=temp,P,A,1
|
||||
2=adc_raw_vol,P,A,1
|
||||
3=force_update_adc,P,A,1
|
||||
4=DMAMK1,P,A,1
|
||||
5=DMAIF1,P,A,1
|
||||
6=tasks_immed,P,A,1
|
||||
7=list_id,P,A,1
|
||||
8=psw,P,A,1
|
||||
9=system_status,P,A,1
|
||||
10=p_LED_duty_WiFi,P,A,1
|
||||
11=P4.2,P,A,1
|
||||
12=TDR02,P,A,1
|
||||
13=vreg_ctr,P,A,1
|
||||
14=info_LED,P,A,1
|
||||
15=pool,P,A,1
|
||||
0=TDR02,P,A,1
|
||||
1=vreg_ctr,P,A,1
|
||||
2=info_LED,P,A,1
|
||||
3=pool,P,A,1
|
||||
4=rcomp,P,A,1
|
||||
5=temp_co_up,P,A,1
|
||||
6=temp_co_dn,P,A,1
|
||||
7=temperature,P,A,1
|
||||
8=raw_adc_temperature,P,A,1
|
||||
9=pu70,P,A,1
|
||||
10=pm7.0,P,A,1
|
||||
11=pu7.0,P,A,1
|
||||
12=p7.0,P,A,1
|
||||
13=p5.1,P,A,1
|
||||
14=pu5.1,P,A,1
|
||||
15=pm5.1,P,A,1
|
||||
[Software Break]
|
||||
Geometry=1085, 803, 500, 296
|
||||
Window=Normal
|
||||
Width=150 30 200 100
|
||||
Name0=Swb00015
|
||||
Address0=pm.c#_ntr_pmic_comm+0x32
|
||||
Name0=Swb00001
|
||||
Address0=vreg_ctr.c#_vreg_ctr_read+0x3c
|
||||
Window0=ASM
|
||||
Status0=ON
|
||||
Name1=Swb00001
|
||||
Address1=vreg_ctr.c#_vreg_ctr_read+0x3c
|
||||
Name1=Swb00015
|
||||
Address1=led.c#_tsk_led_cam+0x76
|
||||
Window1=ASM
|
||||
Status1=ON
|
||||
Count=2
|
||||
Name2=Swb00002
|
||||
Address2=task_status.c#_tsk_status+0x70
|
||||
Window2=ASM
|
||||
Status2=ON
|
||||
Count=3
|
||||
[Reset]
|
||||
Debugger=ON
|
||||
Symbol=OFF
|
||||
|
@ -520,6 +520,65 @@ DefaultMode2=1
|
||||
DefaultMode3=1
|
||||
DefaultMode4=1
|
||||
DefaultMode5=1
|
||||
[SrcFile]
|
||||
Source1=loader.c
|
||||
Source2=pm.c
|
||||
Source3=i2c_ctr.c
|
||||
Source4=main.c
|
||||
Source5=magic.c
|
||||
Source6=WDT.c
|
||||
Source7=i2c_mcu.c
|
||||
Source8=i2c_twl.c
|
||||
Source9=led.c
|
||||
Source10=rtc.c
|
||||
Source11=vreg_ctr.c
|
||||
Source12=vreg_twl.c
|
||||
Source13=adc.c
|
||||
Source14=renge\renge.c
|
||||
Source15=accero.c
|
||||
Source16=self_flash.c
|
||||
Source17=sw.c
|
||||
Source18=task_debug.c
|
||||
Source19=task_misc.c
|
||||
Source20=task_sys.c
|
||||
Source21=pedo_alg_thre_det2.c
|
||||
Source22=ini_VECT.c
|
||||
Source23=task_status.c
|
||||
[IncFile]
|
||||
Include1=incs_loader.h
|
||||
Include2=jhl_defs.h
|
||||
Include3=config.h
|
||||
Include4=user_define.h
|
||||
Include5=bsr_system.h
|
||||
Include6=renge\renge.h
|
||||
Include7=renge\renge_defs.h
|
||||
Include8=renge\renge_task_immediate.h
|
||||
Include9=vreg_ctr.h
|
||||
Include10=vreg_twl.h
|
||||
Include11=loader.h
|
||||
Include12=i2c_mcu.h
|
||||
Include13=WDT.h
|
||||
Include14=fsl.h
|
||||
Include15=fsl_user.h
|
||||
Include16=i2c_ctr.h
|
||||
Include17=pm.h
|
||||
Include18=rtc.h
|
||||
Include19=reboot.h
|
||||
Include20=incs.h
|
||||
Include21=accero.h
|
||||
Include22=pedometer.h
|
||||
Include23=adc.h
|
||||
Include24=led.h
|
||||
Include25=batt_params.h
|
||||
Include26=i2c_twl_defs.h
|
||||
Include27=renge\renge_task_intval.h
|
||||
Include28=i2c_twl.h
|
||||
Include29=sw.h
|
||||
Include30=self_flash.h
|
||||
Include31=pool.h
|
||||
Include32=pedo_lpf_coeff.h
|
||||
Include33=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
Include34=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
[Options.CC78K0R 0]
|
||||
Version=210
|
||||
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
@ -696,7 +755,7 @@ Unsignedchar=0
|
||||
Usesaddrchk=0
|
||||
Autoallocationchk=1
|
||||
Jumpoptimize=1
|
||||
Librarycallchk=0
|
||||
Librarycallchk=1
|
||||
Librarycall=1129
|
||||
Aggressivechk=1
|
||||
Relativebranchchk=1
|
||||
@ -986,62 +1045,3 @@ VfiFileBoot0=
|
||||
VfiFileBoot1=boot.vfi
|
||||
VF78K0Rchk=0
|
||||
VF78K0Rvs=
|
||||
[SrcFile]
|
||||
Source1=loader.c
|
||||
Source2=pm.c
|
||||
Source3=i2c_ctr.c
|
||||
Source4=main.c
|
||||
Source5=magic.c
|
||||
Source6=WDT.c
|
||||
Source7=i2c_mcu.c
|
||||
Source8=i2c_twl.c
|
||||
Source9=led.c
|
||||
Source10=rtc.c
|
||||
Source11=vreg_ctr.c
|
||||
Source12=vreg_twl.c
|
||||
Source13=adc.c
|
||||
Source14=renge\renge.c
|
||||
Source15=accero.c
|
||||
Source16=self_flash.c
|
||||
Source17=sw.c
|
||||
Source18=task_debug.c
|
||||
Source19=task_misc.c
|
||||
Source20=task_sys.c
|
||||
Source21=pedo_alg_thre_det2.c
|
||||
Source22=ini_VECT.c
|
||||
Source23=task_status.c
|
||||
[IncFile]
|
||||
Include1=incs_loader.h
|
||||
Include2=jhl_defs.h
|
||||
Include3=config.h
|
||||
Include4=user_define.h
|
||||
Include5=bsr_system.h
|
||||
Include6=renge\renge.h
|
||||
Include7=renge\renge_defs.h
|
||||
Include8=renge\renge_task_immediate.h
|
||||
Include9=vreg_ctr.h
|
||||
Include10=vreg_twl.h
|
||||
Include11=loader.h
|
||||
Include12=i2c_mcu.h
|
||||
Include13=WDT.h
|
||||
Include14=fsl.h
|
||||
Include15=fsl_user.h
|
||||
Include16=i2c_ctr.h
|
||||
Include17=pm.h
|
||||
Include18=rtc.h
|
||||
Include19=reboot.h
|
||||
Include20=incs.h
|
||||
Include21=accero.h
|
||||
Include22=pedometer.h
|
||||
Include23=adc.h
|
||||
Include24=led.h
|
||||
Include25=batt_params.h
|
||||
Include26=i2c_twl_defs.h
|
||||
Include27=renge\renge_task_intval.h
|
||||
Include28=i2c_twl.h
|
||||
Include29=sw.h
|
||||
Include30=self_flash.h
|
||||
Include31=pool.h
|
||||
Include32=pedo_lpf_coeff.h
|
||||
Include33=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
Include34=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
|
@ -1,5 +1,5 @@
|
||||
[ProjectManager]
|
||||
FrameMax=0
|
||||
FrameMax=1
|
||||
FrameX=255
|
||||
FrameY=34
|
||||
FrameCX=1299
|
||||
@ -10,21 +10,19 @@ OpenFile3=renge\\renge_defs.h,0,293,307,1537,1033,18,37,18,0
|
||||
OpenFile4=task_sys.c,0,330,330,1574,1056,0,172,37,0
|
||||
OpenFile5=loader.c,0,296,307,1286,923,20,214,20,0
|
||||
OpenFile6=pm.h,0,254,446,1244,1062,0,115,0,0
|
||||
OpenFile7=sw.c,0,574,367,1818,1093,43,36,43,0
|
||||
OpenFile8=vreg_ctr.h,0,632,184,1876,910,8,40,25,0
|
||||
OpenFile9=pedo_alg_thre_det2.c,0,132,132,1376,858,0,12,0,0
|
||||
OpenFile10=adc.c,0,286,286,1530,1012,0,145,0,0
|
||||
OpenFile11=self_flash.c,0,154,154,1398,880,7,365,7,0
|
||||
OpenFile12=ProjectWindow
|
||||
OpenFile7=vreg_ctr.h,0,632,184,1876,910,8,40,25,0
|
||||
OpenFile8=pedo_alg_thre_det2.c,0,132,132,1376,858,0,12,0,0
|
||||
OpenFile9=adc.c,0,286,286,1530,1012,0,145,0,0
|
||||
OpenFile10=self_flash.c,0,154,154,1398,880,7,365,7,0
|
||||
OpenFile11=ProjectWindow
|
||||
PrjPos=0,2,754,3,253
|
||||
OpenFile13=magic.c,0,323,248,1567,974,0,17,0,0
|
||||
OpenFile14=led.h,0,22,22,1023,650,25,29,25,0
|
||||
OpenFile15=config.h,0,288,71,1532,797,0,28,0,0
|
||||
OpenFile16=task_misc.c,0,308,308,1552,1034,0,12,0,0
|
||||
OpenFile17=renge\renge_defs.h,0,667,22,1514,748,4,37,4,0
|
||||
OpenFile18=i2c_ctr.c,0,132,132,1376,858,20,211,16,0
|
||||
OpenFile19=vreg_ctr.c,0,154,154,1398,880,72,355,73,0
|
||||
OpenFile20=OutputWindow
|
||||
OpenFile12=magic.c,0,323,248,1567,974,0,17,0,0
|
||||
OpenFile13=led.h,0,22,22,1023,650,25,29,25,0
|
||||
OpenFile14=led.c,0,315,193,1559,919,0,656,0,0
|
||||
OpenFile15=config.h,0,288,71,1532,797,26,27,26,0
|
||||
OpenFile16=sw.c,0,574,367,1818,1093,0,36,0,0
|
||||
OpenFile17=vreg_twl.c,0,286,286,1530,1012,2,65,2,0
|
||||
OpenFile18=OutputWindow
|
||||
OutputPos=0,536,1002,34,1092
|
||||
ActivePRJ=yav_mcu_bsr.prj
|
||||
[ProjectWindow]
|
||||
|
@ -11,7 +11,7 @@ T=4bf114e2
|
||||
7=rtc.h
|
||||
8=reboot.h
|
||||
[pm.c]
|
||||
T=4bf213b1
|
||||
T=4bf28b7e
|
||||
1=incs.h
|
||||
2=adc.h
|
||||
3=led.h
|
||||
@ -25,7 +25,7 @@ T=4bf2324a
|
||||
1=config.h
|
||||
2=incs.h
|
||||
[main.c]
|
||||
T=4bf0d1e1
|
||||
T=4bf3b1c1
|
||||
1=incs_loader.h
|
||||
2=WDT.h
|
||||
3=rtc.h
|
||||
@ -35,7 +35,7 @@ T=4bf0d1e1
|
||||
7=adc.h
|
||||
8=pool.h
|
||||
[magic.c]
|
||||
T=4bf23469
|
||||
T=4bf3b865
|
||||
1=config.h
|
||||
[WDT.c]
|
||||
T=4bf0d1e1
|
||||
@ -50,14 +50,14 @@ T=4bf0d1e0
|
||||
2=incs.h
|
||||
3=i2c_twl_defs.h
|
||||
[led.c]
|
||||
T=4bf213b1
|
||||
T=4bf3a163
|
||||
1=incs.h
|
||||
2=led.h
|
||||
[rtc.c]
|
||||
T=4bf0d1e1
|
||||
1=incs.h
|
||||
[vreg_ctr.c]
|
||||
T=4bf23471
|
||||
T=4bf3a2ff
|
||||
1=incs.h
|
||||
2=vreg_ctr.h
|
||||
3=rtc.h
|
||||
@ -68,7 +68,7 @@ T=4bf23471
|
||||
8=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
9=fsl_user.h
|
||||
[vreg_twl.c]
|
||||
T=4bf1fe17
|
||||
T=4bf3b1c1
|
||||
1=incs.h
|
||||
2=jhl_defs.h
|
||||
3=led.h
|
||||
@ -102,7 +102,7 @@ T=4bf0d1e0
|
||||
4=i2c_ctr.h
|
||||
5=pool.h
|
||||
[sw.c]
|
||||
T=4bf0d1e0
|
||||
T=4bf3afad
|
||||
1=incs.h
|
||||
2=i2c_twl.h
|
||||
3=i2c_ctr.h
|
||||
@ -115,7 +115,7 @@ T=4bf0d1e1
|
||||
2=renge\renge.h
|
||||
3=pm.h
|
||||
[task_misc.c]
|
||||
T=4bf2178f
|
||||
T=4bf27c33
|
||||
1=incs.h
|
||||
2=renge\renge.h
|
||||
3=pm.h
|
||||
@ -124,7 +124,7 @@ T=4bf2178f
|
||||
6=i2c_mcu.h
|
||||
7=led.h
|
||||
[task_sys.c]
|
||||
T=4bf21233
|
||||
T=4bf3b993
|
||||
1=incs.h
|
||||
2=i2c_twl.h
|
||||
3=i2c_ctr.h
|
||||
@ -169,9 +169,9 @@ T=4bf0d1e1
|
||||
T=4bf0d1e0
|
||||
1=config.h
|
||||
[config.h]
|
||||
T=4bf0d1e0
|
||||
T=4bf3afad
|
||||
[user_define.h]
|
||||
T=4bf0d1e1
|
||||
T=4bf376de
|
||||
[bsr_system.h]
|
||||
T=4bf0d1e1
|
||||
[renge\renge.h]
|
||||
@ -201,7 +201,7 @@ T=4bf0d1e0
|
||||
[i2c_ctr.h]
|
||||
T=4bf0d1e1
|
||||
[pm.h]
|
||||
T=4bf0d1e1
|
||||
T=4bf376de
|
||||
[rtc.h]
|
||||
T=4bf0d1e1
|
||||
[reboot.h]
|
||||
@ -228,9 +228,9 @@ T=4bf0d1e0
|
||||
T=4bf0d1e1
|
||||
1=jhl_defs.h
|
||||
[led.h]
|
||||
T=4bf13f6f
|
||||
T=4bf3815d
|
||||
[batt_params.h]
|
||||
T=4bf0d1e1
|
||||
T=4bf28b27
|
||||
[i2c_twl_defs.h]
|
||||
T=4bf0d1e1
|
||||
[renge\renge_task_intval.h]
|
||||
|
Loading…
Reference in New Issue
Block a user