・レジスタ書き込みでの強制ボリュームセット実装
・パナソニックのバッテリパラメータをダミーから差し替え(まだ機能してない)
・フルカラーお知らせ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:
N2232 2010-05-24 04:10:36 +00:00
parent 70bccac852
commit 2a6ddf4d26
37 changed files with 795 additions and 915 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -29,7 +29,7 @@ enum model_
MODEL_TS_BOARD,
MODEL_SHIROBAKO,
MODEL_JIKKI_NOBATT,
MODEL_RESERVED1,
MODEL_UNKNOWN,
MODEL_RESERVED2,
MODEL_RESERVED3,
};

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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;
/*

View File

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

View File

@ -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( ); // 特定スイッチで何かするか?

View File

@ -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で電池切れ
}

View File

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

View File

@ -4,7 +4,7 @@
#include "pedometer.h"
#define VREG_C_FREE_SIZE 24
#define VREG_C_FREE_SIZE 176
// 空いてるメモリ
typedef struct {

View File

@ -17,8 +17,7 @@
#include "..\config.h"
#include "..\user_define.h"
#define _renge_test_
//#define _renge_test_
//******************************************************************************
bit renge_flg_interval;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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