CODECの不具合対策でVolをSPIから書くための仕組みを追加

スライダの可動範囲がもともと筐体で制限されているが、0側に寄っているのでVolレジスタに反映させる際に0-63がでるようスケーリングを調整
バッテリパラメータの最終版を反映。
ROMがあふれそうなのでRTCをブートブロックに移動
ホタル廃止、SoCからは流し込めないがお知らせLEDの様にテーブルから補完するように変更。コード流用。仕様変更
充電周りのたくさんのバグを修正
・電池を抜いてもCEをアサートしっぱなしだったり、
・過放電の電池に充電できなかったり
・バッテリパラメータを送りすぎたり送り忘れたり
歩数計の境界分・秒の判定を誤っていた。修正・リファクタリング
電池電圧で残量をキャップしたり
 キャップしたときにLEDが赤青しないようにヒステリシスを入れた
温度で充電停止、チャタリングがひどいので一般的なチャタリング防止を追加
機種判定などがもうめちゃめちゃだったのでリファクタリング
電源OFF時、とりあえずLCD系電源を落とすがウェイトを調整
電池残量ICが電池残量0といってもマイコンからは電源を落とさない。3.1Vまでは動かす。仕様変更
強制電源断の仕様変更。2sec抑えたら問答無用でさらに4sec後にoff→6秒押さえ続けたら0ff


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@202 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
N2232 2010-07-13 12:12:27 +00:00
parent 510e8fb69b
commit 4efe357491
30 changed files with 2307 additions and 2270 deletions

View File

@ -18,13 +18,12 @@
// ===================================================== //
bit adc_updated;
bit vol_changed_by_ctr;
bit vol_changed_by_twl;
u8 vol_old;
u8 adc_raw_vol;
u8 adc_raw_dep;
u8 vol_written_ctr;
bit vol_by_twl;
typedef struct filter_work
@ -68,7 +67,7 @@ static u8 adc_scaling( u8 );
VOL
PM_BT_DET,_P BT_init
PM_BT_DET,_P BT_chk
8tics毎に呼ばれADCを停止します
 
@ -87,25 +86,27 @@ void tsk_adc( )
#if 0
// debug
{
static u16 loop;
static u8 dat_old;
static bit interval;
/*
// VOL書き頻度を半分にする
interval++;
if( !interval )
{
return;
}
*/
}
#endif
#if 0
{
static u16 loop;
if( system_status.pwr_state == ON )
{
loop++;
if( loop == 499 ){
// vol_written_ctr = 0;
}
else if( loop == 500 ){
vol_written_ctr = 0;
loop = 0;
}
else
@ -117,7 +118,7 @@ void tsk_adc( )
}
//*/
#endif
renge_task_immed_add( tski_vol_update ); // T = 2ms polling
if( task_interval-- != 0 )
@ -140,24 +141,14 @@ void tsk_adc( )
// Volume /////////////////////////////////////
{
static u8 vol_old;
adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // 結果は*work_vr_volから指されるvol_data_ctr 読みにくい...
vol_data_ctr = vol_data_ctr_tmp / 4;
if(( vreg_ctr[ VREG_C_VOL_DIGITAL ] & REG_BIT_VOL_FORCE_REG ) != 0 )
{
// レジスタから強制セット
vol_data_ctr = ( vreg_ctr[ VREG_C_VOL_DIGITAL ] & ~( REG_BIT_VOL_RESET | REG_BIT_VOL_FORCE_REG ) );
}
if( vol_old != vol_data_ctr )
{
vol_changed_by_ctr = 1;
vol_old = vol_data_ctr;
vol_by_twl = 0;
vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64段
vol_written_ctr = slider_to_codec[ vol_data_ctr ];
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = vol_data_ctr / 2;
// renge_task_immed_add( tski_vol_update ); 2ms後でいいでしょう...
}
}
@ -181,6 +172,12 @@ void tsk_adc( )
void vol_reset()
{
vol_old = vol_data_ctr;
vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64段
}
/* ========================================================
 Volを更新します
@ -191,41 +188,99 @@ void tsk_adc( )
======================================================== */
task_status_immed tski_vol_update()
{
u8 vol_scaled;
u8 temp;
u8 i;
static u8 sent_index, sent_index_slider, sent_index_twl;
static u8 sent_data;
static bit last_modifyer; // 0 = ctr
// SPIでかくテスト todo
// return( ERR_FINISED );
if( system_status.pwr_state != ON ){
return( ERR_FINISED );
}
if( vol_by_twl )
// どの音量にするの? //
if( vreg_ctr[ VREG_C_VOL_OPTION ] & REG_BIT_VOL_FORCE_SLIDER )
{
temp = slider_to_codec[ vreg_twl[ REG_TWL_INT_ADRS_VOL ] * 2 ];
// 最優先 スライダに上書き
sent_index = vol_data_ctr;
}
else if( vol_changed_by_ctr )
{
// スライダ
vol_changed_by_ctr = 0;
last_modifyer = 0;
if( vreg_ctr[ VREG_C_VOL_OPTION ] & REG_BIT_VOL_FORCE_REG )
{
// レジスタから強制セット
sent_index_slider = vreg_ctr[ VREG_C_VOL_DIGITAL ];
}
else
{
sent_index_slider = vol_data_ctr; // CTRスライダ
}
sent_index = sent_index_slider;
}
else if( vol_changed_by_twl )
{
// TWLアプリ
vol_changed_by_twl = 0;
last_modifyer = 1;
if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] == 0 )
{
sent_index_twl = 0;
}
else
{
sent_index_twl = vreg_twl[ REG_TWL_INT_ADRS_VOL ] *2 +1;
}
sent_index = sent_index_twl;
set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE );
}
else
{
temp = vol_written_ctr;
// force_sliderを0にしたとき & 書きまくるとき
// スライダかTWLの最後にセットした方をセット
if( last_modifyer == 0 )
{
sent_index = sent_index_slider;
}
else
{
sent_index = sent_index_twl;
}
}
// レジスタの更新 //
vreg_ctr[ VREG_C_SND_VOL ] = sent_index;
if( sent_index == 1 )
{
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 1;
}
else
{
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = sent_index/2 ;
}
// CODECに書きに行く
if( vreg_ctr[ VREG_C_VOL_OPTION ] & REG_BIT_VOL_BY_SPI )
{
return( ERR_FINISED );
}
// by SPI ならここまででおしまい //
// debug todo
iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL );
// codecに伝える
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp );
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, slider_to_codec[ sent_index ] );
// debug todo
iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL );
#ifndef _MODEL_CTR_
iic_mcu_write_a_byte( IIC_SLA_DCP, 0, slider_to_codec[ ( 255 - vol_data ) / 4 ] );
#endif
// set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 割り込み廃止
return( ERR_FINISED );
return( ERR_FINISED );
}
/* ========================================================
 minでもMAXでもない値を返す
 
@ -384,23 +439,24 @@ u8 get_adc( u8 ch )
/* ========================================================
VRの可動範囲を考えてスケーリング
======================================================== */
#define ASOBI 10
#define ASOBI_L 4
#define ASOBI_H 16
static u8 adc_scaling( u8 orig_val )
{
u16 temp;
if( orig_val > ( 255 - ASOBI ))
if( orig_val > ( 255 - ASOBI_H ))
{
return( 255 );
}
if( orig_val <= ASOBI )
if( orig_val <= ASOBI_L )
{
return( 0 );
}
orig_val -= ASOBI;
temp = (u16)( orig_val * 256 ) / ( 256 - ( 2 * ASOBI ));
orig_val -= ASOBI_L;
temp = (u16)( orig_val * 256 ) / ( 256 - ( ASOBI_L + ASOBI_H ));
return( (u8)( temp & 0xFF ) );
}

View File

@ -38,6 +38,8 @@
///////////////////////////////////////
u8 get_adc( u8 ch );
void vol_reset();
#endif

View File

@ -7,43 +7,34 @@
const u8 BT_PARAM[][64] = {
// ID = 0 GND マクセル
{
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10,
0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30,
0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70,
0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
},
{ // ID = 1 120 ohm (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10,
0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30,
0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70,
0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
},
{ // ID = 2 360 hom (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10,
0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30,
0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70,
0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
},
{ // ID = 3 750 ohm ダミーでパナ
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
@ -103,9 +94,9 @@ typedef struct _st_bt_comp
// 電池残量補正パラメータ
const st_bt_comp BT_COMP[] = {
// rcomp R_co_up R_co_down
{ 135, -256* 0.15, -256* 2.15 }, // maxell
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M )
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M )
{ 92, -256* 0.79, -256* 4.35 }, // maxell
{ 92, -256* 0.79, -256* 4.35 }, // dummy(M )
{ 92, -256* 0.79, -256* 4.35 }, // dummy(M )
{ 171, -256* 1.00, -256* 2.60 }, // dummy( P)
{ 171, -256* 1.00, -256* 2.60 }, // dummy( P)
{ 171, -256* 1.00, -256* 2.60 }, // panasonic
@ -113,18 +104,23 @@ const st_bt_comp BT_COMP[] = {
};
const u16 BT_OCV[] = {
{ 0xD800 }, { 0xD800 }, { 0xD800 }, // maxell, dummy, dummy,
{ 0xDA20 }, { 0xDA20 }, { 0xDA20 }, { 0xDA20 } // dummy, dummy, panaso, dummy
};
const u8 BT_VERIFY_H[] = {
0x75, 0x75, 0x75, // maxell, dummy, dummy,
0xEA, 0xEA, 0xEA, // maxell, dummy, dummy,
0x69, 0x69, 0x69, 0x69 // dummy, dummy, panaso, dummy
};
const u8 BT_VERIFY_L[] = {
0x74, 0x74, 0x74, // maxell, dummy, dummy,
0xE8, 0xE8, 0xE8, // maxell, dummy, dummy,
0x67, 0x67, 0x67, 0x67 // dummy, dummy, panaso, dummy
};
const u8 BT_RCOMP_SCALE[] = {
1, 1, 1, // maxell, dummy, dummy,
2, 2, 2, // maxell, dummy, dummy,
1, 1, 1, 1 // dummy, dummy, panaso, dummy
};

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,20 +1,20 @@
78K0R Linker W1.31 Date: 7 Jul 2010 Page: 1
78K0R Linker W1.31 Date:13 Jul 2010 Page: 1
Command: -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff -obsr.l
mf ..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10
\lib78k0r\s0rm.rel -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFF
Fh -pbsr_k0r.map -nkd -gb7EFBFFh -bC:\Program Files\NEC Elect
ronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -bcl0rd
m.lib -bcl0rm.lib -bcl0rmf.lib -iC:\Program Files\NEC Electro
nics 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.re
l renge.rel accero.rel self_flash.rel sw.rel task_debug.rel t
ask_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel
task_status.rel
Fh -pbsr_k0r.map -nkd -gb0FEFBFFh -bC:\Program Files\NEC Elec
tronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -bcl0r
dm.lib -bcl0rm.lib -bcl0rmf.lib -iC:\Program Files\NEC Electr
onics 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.re
l i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.r
el 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.re
l task_status.rel
Para-file:
Out-file: bsr.lmf
Map-file: bsr_k0r.map
@ -24,8 +24,8 @@ Direc-file:bsr_mcu.dr
*** Link information ***
66 output segment(s)
3B91H byte(s) real data
5392 symbol(s) defined
3CE9H byte(s) real data
5453 symbol(s) defined
*** Memory map ***
@ -48,6 +48,8 @@ Direc-file:bsr_mcu.dr
LDR_CNSL WDT 00002H 00000H
LDR_CNSL 00002H 00000H CSEG PAGE64KP
LDR_CNSL i2c_mcu 00002H 00000H
LDR_CNSL 00002H 00000H CSEG PAGE64KP
LDR_CNSL rtc 00002H 00000H
LDR_CNSL 00002H 00000H CSEG PAGE64KP
LDR_CNSL self_flash
00002H 00000H
@ -86,55 +88,57 @@ Direc-file:bsr_mcu.dr
LDR_CODL main 000C4H 00000H
LDR_CODL WDT 000C4H 00000H
LDR_CODL i2c_mcu 000C4H 00000H
LDR_CODL rtc 000C4H 00000H
LDR_CODL self_flash
000C4H 00000H
?CSEGSI 000C4H 0000AH CSEG
?OCDSTAD 000CEH 0000AH CSEG
LDR_CODE 000D8H 00841H CSEG
LDR_CODE 000D8H 00912H CSEG
LDR_CODE loader 000D8H 001E0H
LDR_CODE main 002B8H 0006EH
LDR_CODE WDT 00326H 00000H
LDR_CODE i2c_mcu 00326H 002AAH
LDR_CODE rtc 005D0H 000E0H
LDR_CODE self_flash
005D0H 00349H
FSL_CODE 00919H 00322H CSEG
006B0H 0033AH
FSL_CODE 009EAH 00322H CSEG
FSL_CODE fsl_block_cmd
00919H 0002BH
009EAH 0002BH
FSL_CODE fsl_block_check
00944H 00013H
00A15H 00013H
FSL_CODE fsl_common
00957H 0014FH
00A28H 0014FH
FSL_CODE fsl_reset
00AA6H 00001H
00B77H 00001H
FSL_CODE fsl_si_ibf
00AA7H 00064H
00B78H 00064H
FSL_CODE fsl_phySwap
00B0BH 0004DH
00BDCH 0004DH
FSL_CODE fsl_si_common
00B58H 00061H
FSL_CODE fsl_swap 00BB9H 00030H
00C29H 00061H
FSL_CODE fsl_swap 00C8AH 00030H
FSL_CODE fsl_write
00BE9H 00052H
@@LCODE 00C3BH 002AFH CSEG
@@LCODE @cstart 00C3BH 0006DH
@@LCODE @imul 00CA8H 00011H
@@LCODE @lumul 00CB9H 0002BH
@@LCODE @isdiv 00CE4H 00022H
@@LCODE @iudiv 00D06H 0002DH
@@LCODE @isrem 00D33H 00021H
@@LCODE @iurem 00D54H 0002FH
@@LCODE @lsdiv 00D83H 00039H
@@LCODE @ludiv 00DBCH 0003FH
@@LCODE @divuw 00DFBH 00034H
@@LCODE @ladd 00E2FH 0000FH
@@LCODE @llsh 00E3EH 0001BH
@@LCODE @lursh 00E59H 0001FH
@@LCODE @iscmp 00E78H 0000CH
@@LCODE @lscmp 00E84H 00014H
@@LCODE @lband 00E98H 00014H
@@LCODE @bcdtob 00EACH 0001AH
@@LCODE @bbcd 00EC6H 00024H
* gap * 00EEAH 0010CH
00CBAH 00052H
@@LCODE 00D0CH 002AFH CSEG
@@LCODE @cstart 00D0CH 0006DH
@@LCODE @imul 00D79H 00011H
@@LCODE @lumul 00D8AH 0002BH
@@LCODE @isdiv 00DB5H 00022H
@@LCODE @iudiv 00DD7H 0002DH
@@LCODE @isrem 00E04H 00021H
@@LCODE @iurem 00E25H 0002FH
@@LCODE @lsdiv 00E54H 00039H
@@LCODE @ludiv 00E8DH 0003FH
@@LCODE @divuw 00ECCH 00034H
@@LCODE @ladd 00F00H 0000FH
@@LCODE @llsh 00F0FH 0001BH
@@LCODE @lursh 00F2AH 0001FH
@@LCODE @iscmp 00F49H 0000CH
@@LCODE @lscmp 00F55H 00014H
@@LCODE @lband 00F69H 00014H
@@LCODE @bcdtob 00F7DH 0001AH
@@LCODE @bbcd 00F97H 00024H
* gap * 00FBBH 0003BH
MGC_LOAD 00FF6H 0000AH CSEG AT
MGC_LOAD magic 00FF6H 0000AH
@ -152,8 +156,6 @@ Direc-file:bsr_mcu.dr
@@CNSTL i2c_twl 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP
@@CNSTL led 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP
@@CNSTL rtc 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP
@@CNSTL vreg_ctr 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP
@ -314,7 +316,6 @@ Direc-file:bsr_mcu.dr
@@CODEL magic 02056H 00000H
@@CODEL i2c_twl 02056H 00000H
@@CODEL led 02056H 00000H
@@CODEL rtc 02056H 00000H
@@CODEL vreg_ctr 02056H 00000H
@@CODEL vreg_twl 02056H 00000H
@@CODEL adc 02056H 00000H
@ -336,87 +337,86 @@ Direc-file:bsr_mcu.dr
* gap * 0205EH 000A2H
MGC_MIMI 02100H 0000AH CSEG AT
MGC_MIMI magic 02100H 0000AH
@@CNST 0210AH 00290H CSEG
@@CNST 0210AH 002AEH CSEG
@@CNST @cstart 0210AH 00000H
@@CNST loader 0210AH 00000H
@@CNST pm 0210AH 00204H
@@CNST i2c_ctr 0230EH 00000H
@@CNST main 0230EH 00000H
@@CNST magic 0230EH 00000H
@@CNST WDT 0230EH 00000H
@@CNST i2c_mcu 0230EH 00000H
@@CNST i2c_twl 0230EH 00000H
@@CNST led 0230EH 00000H
@@CNST rtc 0230EH 00000H
@@CNST vreg_ctr 0230EH 00000H
@@CNST vreg_twl 0230EH 00000H
@@CNST adc 0230EH 00040H
@@CNST renge 0234EH 00000H
@@CNST accero 0234EH 00000H
@@CNST pm 0210AH 00212H
@@CNST i2c_ctr 0231CH 00000H
@@CNST main 0231CH 00000H
@@CNST magic 0231CH 00000H
@@CNST WDT 0231CH 00000H
@@CNST i2c_mcu 0231CH 00000H
@@CNST i2c_twl 0231CH 00000H
@@CNST led 0231CH 00010H
@@CNST rtc 0232CH 00000H
@@CNST vreg_ctr 0232CH 00000H
@@CNST vreg_twl 0232CH 00000H
@@CNST adc 0232CH 00040H
@@CNST renge 0236CH 00000H
@@CNST accero 0236CH 00000H
@@CNST self_flash
0234EH 00002H
@@CNST sw 02350H 00000H
0236CH 00002H
@@CNST sw 0236EH 00000H
@@CNST task_debug
02350H 00000H
0236EH 00000H
@@CNST task_misc
02350H 00000H
@@CNST task_sys 02350H 00000H
0236EH 00000H
@@CNST task_sys 0236EH 00000H
@@CNST pedo_alg_thre_det2
02350H 0004AH
@@CNST ini_VECT 0239AH 00000H
0236EH 0004AH
@@CNST ini_VECT 023B8H 00000H
@@CNST task_status
0239AH 00000H
ROM_CODE 0239AH 02558H CSEG
ROM_CODE pm 0239AH 008FEH
ROM_CODE i2c_ctr 02C98H 00060H
ROM_CODE i2c_twl 02CF8H 0005EH
ROM_CODE led 02D56H 004E8H
ROM_CODE rtc 0323EH 000E0H
ROM_CODE vreg_ctr 0331EH 00447H
ROM_CODE vreg_twl 03765H 00156H
ROM_CODE adc 038BBH 00249H
ROM_CODE renge 03B04H 001C3H
ROM_CODE accero 03CC7H 0013DH
ROM_CODE sw 03E04H 000DDH
023B8H 00000H
ROM_CODE 023B8H 025C1H CSEG
ROM_CODE pm 023B8H 009C6H
ROM_CODE i2c_ctr 02D7EH 00060H
ROM_CODE i2c_twl 02DDEH 0005EH
ROM_CODE led 02E3CH 004BAH
ROM_CODE vreg_ctr 032F6H 00444H
ROM_CODE vreg_twl 0373AH 00163H
ROM_CODE adc 0389DH 002B5H
ROM_CODE renge 03B52H 001C3H
ROM_CODE accero 03D15H 0013DH
ROM_CODE sw 03E52H 000F3H
ROM_CODE task_debug
03EE1H 0001BH
03F45H 0001BH
ROM_CODE task_misc
03EFCH 001B1H
ROM_CODE task_sys 040ADH 002FFH
03F60H 001BAH
ROM_CODE task_sys 0411AH 00305H
ROM_CODE pedo_alg_thre_det2
043ACH 004C1H
0441FH 004D5H
ROM_CODE task_status
0486DH 00085H
@@BASE 048F2H 004E7H CSEG BASE
@@BASE loader 048F2H 00000H
@@BASE pm 048F2H 00043H
@@BASE i2c_ctr 04935H 00183H
@@BASE main 04AB8H 00000H
@@BASE magic 04AB8H 00000H
@@BASE WDT 04AB8H 00000H
@@BASE i2c_mcu 04AB8H 000D9H
@@BASE i2c_twl 04B91H 000CDH
@@BASE led 04C5EH 00000H
@@BASE rtc 04C5EH 00043H
@@BASE vreg_ctr 04CA1H 00000H
@@BASE vreg_twl 04CA1H 00000H
@@BASE adc 04CA1H 000B3H
@@BASE renge 04D54H 00000H
@@BASE accero 04D54H 0004AH
048F4H 00085H
@@BASE 04979H 004E7H CSEG BASE
@@BASE loader 04979H 00000H
@@BASE pm 04979H 00043H
@@BASE i2c_ctr 049BCH 00183H
@@BASE main 04B3FH 00000H
@@BASE magic 04B3FH 00000H
@@BASE WDT 04B3FH 00000H
@@BASE i2c_mcu 04B3FH 000D9H
@@BASE i2c_twl 04C18H 000CDH
@@BASE led 04CE5H 00000H
@@BASE rtc 04CE5H 00043H
@@BASE vreg_ctr 04D28H 00000H
@@BASE vreg_twl 04D28H 00000H
@@BASE adc 04D28H 000B3H
@@BASE renge 04DDBH 00000H
@@BASE accero 04DDBH 0004AH
@@BASE self_flash
04D9EH 00000H
@@BASE sw 04D9EH 00000H
04E25H 00000H
@@BASE sw 04E25H 00000H
@@BASE task_debug
04D9EH 00000H
04E25H 00000H
@@BASE task_misc
04D9EH 00000H
@@BASE task_sys 04D9EH 00000H
04E25H 00000H
@@BASE task_sys 04E25H 00000H
@@BASE pedo_alg_thre_det2
04D9EH 00000H
@@BASE ini_VECT 04D9EH 0003BH
04E25H 00000H
@@BASE ini_VECT 04E25H 0003BH
@@BASE task_status
04DD9H 00000H
* gap * 04DD9H 0021DH
04E60H 00000H
* gap * 04E60H 00196H
MGC_TAIL 04FF6H 0000AH CSEG AT
MGC_TAIL magic 04FF6H 0000AH
@ -424,230 +424,230 @@ Direc-file:bsr_mcu.dr
BASE ADDRESS=FF900H SIZE=00500H
OUTPUT INPUT INPUT BASE SIZE
SEGMENT SEGMENT MODULE ADDRESS
@@DATA FF900H 003FEH DSEG BASEP
@@DATA FF900H 00406H DSEG BASEP
@@DATA @cstart FF900H 00002H
@@DATA loader FF902H 00000H
@@DATA pm FF902H 00012H
@@DATA i2c_ctr FF914H 00006H
@@DATA main FF91AH 0021EH
@@DATA magic FFB38H 00000H
@@DATA WDT FFB38H 00000H
@@DATA i2c_mcu FFB38H 00008H
@@DATA i2c_twl FFB40H 00000H
@@DATA led FFB40H 00084H
@@DATA rtc FFBC4H 00008H
@@DATA vreg_ctr FFBCCH 00056H
@@DATA vreg_twl FFC22H 00010H
@@DATA adc FFC32H 00014H
@@DATA renge FFC46H 00016H
@@DATA accero FFC5CH 00002H
@@DATA pm FF902H 00014H
@@DATA i2c_ctr FF916H 00006H
@@DATA main FF91CH 0021EH
@@DATA magic FFB3AH 00000H
@@DATA WDT FFB3AH 00000H
@@DATA i2c_mcu FFB3AH 00008H
@@DATA i2c_twl FFB42H 00000H
@@DATA led FFB42H 00088H
@@DATA rtc FFBCAH 00008H
@@DATA vreg_ctr FFBD2H 00056H
@@DATA vreg_twl FFC28H 00010H
@@DATA adc FFC38H 00016H
@@DATA renge FFC4EH 00016H
@@DATA accero FFC64H 00002H
@@DATA self_flash
FFC5EH 00002H
@@DATA sw FFC60H 00004H
@@DATA task_debug
FFC64H 00002H
@@DATA task_misc
FFC66H 00002H
@@DATA task_sys FFC68H 00002H
@@DATA sw FFC68H 00004H
@@DATA task_debug
FFC6CH 00002H
@@DATA task_misc
FFC6EH 00002H
@@DATA task_sys FFC70H 00002H
@@DATA pedo_alg_thre_det2
FFC6AH 00092H
@@DATA ini_VECT FFCFCH 00000H
FFC72H 00092H
@@DATA ini_VECT FFD04H 00000H
@@DATA task_status
FFCFCH 00002H
@@DATA @rom FFCFEH 00000H
@@INIT FFCFEH 0003CH DSEG BASEP
@@INIT @cstart FFCFEH 00000H
@@INIT loader FFCFEH 00000H
@@INIT pm FFCFEH 00002H
@@INIT i2c_ctr FFD00H 00002H
@@INIT main FFD02H 00000H
@@INIT magic FFD02H 00000H
@@INIT WDT FFD02H 00000H
@@INIT i2c_mcu FFD02H 00000H
@@INIT i2c_twl FFD02H 00000H
@@INIT led FFD02H 00006H
@@INIT rtc FFD08H 00000H
@@INIT vreg_ctr FFD08H 00000H
@@INIT vreg_twl FFD08H 00000H
@@INIT adc FFD08H 0000AH
@@INIT renge FFD12H 00018H
@@INIT accero FFD2AH 00000H
FFD04H 00002H
@@DATA @rom FFD06H 00000H
@@INIT FFD06H 0003CH DSEG BASEP
@@INIT @cstart FFD06H 00000H
@@INIT loader FFD06H 00000H
@@INIT pm FFD06H 00002H
@@INIT i2c_ctr FFD08H 00002H
@@INIT main FFD0AH 00000H
@@INIT magic FFD0AH 00000H
@@INIT WDT FFD0AH 00000H
@@INIT i2c_mcu FFD0AH 00000H
@@INIT i2c_twl FFD0AH 00000H
@@INIT led FFD0AH 00006H
@@INIT rtc FFD10H 00000H
@@INIT vreg_ctr FFD10H 00000H
@@INIT vreg_twl FFD10H 00000H
@@INIT adc FFD10H 0000AH
@@INIT renge FFD1AH 00018H
@@INIT accero FFD32H 00000H
@@INIT self_flash
FFD2AH 00000H
@@INIT sw FFD2AH 00002H
FFD32H 00000H
@@INIT sw FFD32H 00002H
@@INIT task_debug
FFD2CH 00002H
FFD34H 00002H
@@INIT task_misc
FFD2EH 00000H
@@INIT task_sys FFD2EH 00002H
FFD36H 00000H
@@INIT task_sys FFD36H 00002H
@@INIT pedo_alg_thre_det2
FFD30H 00008H
@@INIT ini_VECT FFD38H 00000H
FFD38H 00008H
@@INIT ini_VECT FFD40H 00000H
@@INIT task_status
FFD38H 00002H
@@INIT @rom FFD3AH 00000H
@@INIS FFD3AH 00000H DSEG UNITP
@@INIS @cstart FFD3AH 00000H
@@INIS loader FFD3AH 00000H
@@INIS pm FFD3AH 00000H
@@INIS i2c_ctr FFD3AH 00000H
@@INIS main FFD3AH 00000H
@@INIS magic FFD3AH 00000H
@@INIS WDT FFD3AH 00000H
@@INIS i2c_mcu FFD3AH 00000H
@@INIS i2c_twl FFD3AH 00000H
@@INIS led FFD3AH 00000H
@@INIS rtc FFD3AH 00000H
@@INIS vreg_ctr FFD3AH 00000H
@@INIS vreg_twl FFD3AH 00000H
@@INIS adc FFD3AH 00000H
@@INIS renge FFD3AH 00000H
@@INIS accero FFD3AH 00000H
FFD40H 00002H
@@INIT @rom FFD42H 00000H
@@INIS FFD42H 00000H DSEG UNITP
@@INIS @cstart FFD42H 00000H
@@INIS loader FFD42H 00000H
@@INIS pm FFD42H 00000H
@@INIS i2c_ctr FFD42H 00000H
@@INIS main FFD42H 00000H
@@INIS magic FFD42H 00000H
@@INIS WDT FFD42H 00000H
@@INIS i2c_mcu FFD42H 00000H
@@INIS i2c_twl FFD42H 00000H
@@INIS led FFD42H 00000H
@@INIS rtc FFD42H 00000H
@@INIS vreg_ctr FFD42H 00000H
@@INIS vreg_twl FFD42H 00000H
@@INIS adc FFD42H 00000H
@@INIS renge FFD42H 00000H
@@INIS accero FFD42H 00000H
@@INIS self_flash
FFD3AH 00000H
@@INIS sw FFD3AH 00000H
FFD42H 00000H
@@INIS sw FFD42H 00000H
@@INIS task_debug
FFD3AH 00000H
FFD42H 00000H
@@INIS task_misc
FFD3AH 00000H
@@INIS task_sys FFD3AH 00000H
FFD42H 00000H
@@INIS task_sys FFD42H 00000H
@@INIS pedo_alg_thre_det2
FFD3AH 00000H
@@INIS ini_VECT FFD3AH 00000H
FFD42H 00000H
@@INIS ini_VECT FFD42H 00000H
@@INIS task_status
FFD3AH 00000H
@@INIS @rom FFD3AH 00000H
@@DATS FFD3AH 00000H DSEG UNITP
@@DATS @cstart FFD3AH 00000H
@@DATS loader FFD3AH 00000H
@@DATS pm FFD3AH 00000H
@@DATS i2c_ctr FFD3AH 00000H
@@DATS main FFD3AH 00000H
@@DATS magic FFD3AH 00000H
@@DATS WDT FFD3AH 00000H
@@DATS i2c_mcu FFD3AH 00000H
@@DATS i2c_twl FFD3AH 00000H
@@DATS led FFD3AH 00000H
@@DATS rtc FFD3AH 00000H
@@DATS vreg_ctr FFD3AH 00000H
@@DATS vreg_twl FFD3AH 00000H
@@DATS adc FFD3AH 00000H
@@DATS renge FFD3AH 00000H
@@DATS accero FFD3AH 00000H
FFD42H 00000H
@@INIS @rom FFD42H 00000H
@@DATS FFD42H 00000H DSEG UNITP
@@DATS @cstart FFD42H 00000H
@@DATS loader FFD42H 00000H
@@DATS pm FFD42H 00000H
@@DATS i2c_ctr FFD42H 00000H
@@DATS main FFD42H 00000H
@@DATS magic FFD42H 00000H
@@DATS WDT FFD42H 00000H
@@DATS i2c_mcu FFD42H 00000H
@@DATS i2c_twl FFD42H 00000H
@@DATS led FFD42H 00000H
@@DATS rtc FFD42H 00000H
@@DATS vreg_ctr FFD42H 00000H
@@DATS vreg_twl FFD42H 00000H
@@DATS adc FFD42H 00000H
@@DATS renge FFD42H 00000H
@@DATS accero FFD42H 00000H
@@DATS self_flash
FFD3AH 00000H
@@DATS sw FFD3AH 00000H
FFD42H 00000H
@@DATS sw FFD42H 00000H
@@DATS task_debug
FFD3AH 00000H
FFD42H 00000H
@@DATS task_misc
FFD3AH 00000H
@@DATS task_sys FFD3AH 00000H
FFD42H 00000H
@@DATS task_sys FFD42H 00000H
@@DATS pedo_alg_thre_det2
FFD3AH 00000H
@@DATS ini_VECT FFD3AH 00000H
FFD42H 00000H
@@DATS ini_VECT FFD42H 00000H
@@DATS task_status
FFD3AH 00000H
@@DATS @rom FFD3AH 00000H
FSL_DATA FFD3AH 00010H DSEG UNITP
FFD42H 00000H
@@DATS @rom FFD42H 00000H
FSL_DATA FFD42H 00010H DSEG UNITP
FSL_DATA fsl_common
FFD3AH 00010H
@@INITL FFD4AH 00000H DSEG UNIT64KP
@@INITL loader FFD4AH 00000H
@@INITL pm FFD4AH 00000H
@@INITL i2c_ctr FFD4AH 00000H
@@INITL main FFD4AH 00000H
@@INITL magic FFD4AH 00000H
@@INITL WDT FFD4AH 00000H
@@INITL i2c_mcu FFD4AH 00000H
@@INITL i2c_twl FFD4AH 00000H
@@INITL led FFD4AH 00000H
@@INITL rtc FFD4AH 00000H
@@INITL vreg_ctr FFD4AH 00000H
@@INITL vreg_twl FFD4AH 00000H
@@INITL adc FFD4AH 00000H
@@INITL renge FFD4AH 00000H
@@INITL accero FFD4AH 00000H
FFD42H 00010H
@@INITL FFD52H 00000H DSEG UNIT64KP
@@INITL loader FFD52H 00000H
@@INITL pm FFD52H 00000H
@@INITL i2c_ctr FFD52H 00000H
@@INITL main FFD52H 00000H
@@INITL magic FFD52H 00000H
@@INITL WDT FFD52H 00000H
@@INITL i2c_mcu FFD52H 00000H
@@INITL i2c_twl FFD52H 00000H
@@INITL led FFD52H 00000H
@@INITL rtc FFD52H 00000H
@@INITL vreg_ctr FFD52H 00000H
@@INITL vreg_twl FFD52H 00000H
@@INITL adc FFD52H 00000H
@@INITL renge FFD52H 00000H
@@INITL accero FFD52H 00000H
@@INITL self_flash
FFD4AH 00000H
@@INITL sw FFD4AH 00000H
FFD52H 00000H
@@INITL sw FFD52H 00000H
@@INITL task_debug
FFD4AH 00000H
FFD52H 00000H
@@INITL task_misc
FFD4AH 00000H
@@INITL task_sys FFD4AH 00000H
FFD52H 00000H
@@INITL task_sys FFD52H 00000H
@@INITL pedo_alg_thre_det2
FFD4AH 00000H
@@INITL ini_VECT FFD4AH 00000H
FFD52H 00000H
@@INITL ini_VECT FFD52H 00000H
@@INITL task_status
FFD4AH 00000H
@@INITL @rom FFD4AH 00000H
@@DATAL FFD4AH 00000H DSEG UNIT64KP
@@DATAL loader FFD4AH 00000H
@@DATAL pm FFD4AH 00000H
@@DATAL i2c_ctr FFD4AH 00000H
@@DATAL main FFD4AH 00000H
@@DATAL magic FFD4AH 00000H
@@DATAL WDT FFD4AH 00000H
@@DATAL i2c_mcu FFD4AH 00000H
@@DATAL i2c_twl FFD4AH 00000H
@@DATAL led FFD4AH 00000H
@@DATAL rtc FFD4AH 00000H
@@DATAL vreg_ctr FFD4AH 00000H
@@DATAL vreg_twl FFD4AH 00000H
@@DATAL adc FFD4AH 00000H
@@DATAL renge FFD4AH 00000H
@@DATAL accero FFD4AH 00000H
FFD52H 00000H
@@INITL @rom FFD52H 00000H
@@DATAL FFD52H 00000H DSEG UNIT64KP
@@DATAL loader FFD52H 00000H
@@DATAL pm FFD52H 00000H
@@DATAL i2c_ctr FFD52H 00000H
@@DATAL main FFD52H 00000H
@@DATAL magic FFD52H 00000H
@@DATAL WDT FFD52H 00000H
@@DATAL i2c_mcu FFD52H 00000H
@@DATAL i2c_twl FFD52H 00000H
@@DATAL led FFD52H 00000H
@@DATAL rtc FFD52H 00000H
@@DATAL vreg_ctr FFD52H 00000H
@@DATAL vreg_twl FFD52H 00000H
@@DATAL adc FFD52H 00000H
@@DATAL renge FFD52H 00000H
@@DATAL accero FFD52H 00000H
@@DATAL self_flash
FFD4AH 00000H
@@DATAL sw FFD4AH 00000H
FFD52H 00000H
@@DATAL sw FFD52H 00000H
@@DATAL task_debug
FFD4AH 00000H
FFD52H 00000H
@@DATAL task_misc
FFD4AH 00000H
@@DATAL task_sys FFD4AH 00000H
FFD52H 00000H
@@DATAL task_sys FFD52H 00000H
@@DATAL pedo_alg_thre_det2
FFD4AH 00000H
@@DATAL ini_VECT FFD4AH 00000H
FFD52H 00000H
@@DATAL ini_VECT FFD52H 00000H
@@DATAL task_status
FFD4AH 00000H
@@DATAL @rom FFD4AH 00000H
* gap * FFD4AH 000B6H
FFD52H 00000H
@@DATAL @rom FFD52H 00000H
* gap * FFD52H 000AEH
MEMORY=RAM2
BASE ADDRESS=FFE20H SIZE=000C0H
OUTPUT INPUT INPUT BASE SIZE
SEGMENT SEGMENT MODULE ADDRESS
@@BITS FFE20H 00003H BSEG
@@BITS FFE20H 00004H BSEG
@@BITS @cstart FFE20H.0 00000H.0
@@BITS loader FFE20H.0 00000H.0
@@BITS pm FFE20H.0 00000H.3
@@BITS i2c_ctr FFE20H.3 00000H.0
@@BITS main FFE20H.3 00000H.0
@@BITS magic FFE20H.3 00000H.0
@@BITS WDT FFE20H.3 00000H.0
@@BITS i2c_mcu FFE20H.3 00000H.3
@@BITS i2c_twl FFE20H.6 00000H.0
@@BITS led FFE20H.6 00000H.4
@@BITS rtc FFE21H.2 00000H.3
@@BITS vreg_ctr FFE21H.5 00000H.1
@@BITS vreg_twl FFE21H.6 00000H.0
@@BITS adc FFE21H.6 00000H.2
@@BITS renge FFE22H.0 00000H.2
@@BITS accero FFE22H.2 00000H.0
@@BITS pm FFE20H.0 00000H.4
@@BITS i2c_ctr FFE20H.4 00000H.0
@@BITS main FFE20H.4 00000H.0
@@BITS magic FFE20H.4 00000H.0
@@BITS WDT FFE20H.4 00000H.0
@@BITS i2c_mcu FFE20H.4 00000H.3
@@BITS i2c_twl FFE20H.7 00000H.0
@@BITS led FFE20H.7 00000H.4
@@BITS rtc FFE21H.3 00000H.3
@@BITS vreg_ctr FFE21H.6 00000H.1
@@BITS vreg_twl FFE21H.7 00000H.0
@@BITS adc FFE21H.7 00000H.4
@@BITS renge FFE22H.3 00000H.2
@@BITS accero FFE22H.5 00000H.0
@@BITS self_flash
FFE22H.2 00000H.0
@@BITS sw FFE22H.2 00000H.2
FFE22H.5 00000H.0
@@BITS sw FFE22H.5 00000H.2
@@BITS task_debug
FFE22H.4 00000H.0
FFE22H.7 00000H.0
@@BITS task_misc
FFE22H.4 00000H.3
@@BITS task_sys FFE22H.7 00000H.0
FFE22H.7 00000H.3
@@BITS task_sys FFE23H.2 00000H.0
@@BITS pedo_alg_thre_det2
FFE22H.7 00000H.1
@@BITS ini_VECT FFE23H.0 00000H.0
FFE23H.2 00000H.1
@@BITS ini_VECT FFE23H.3 00000H.0
@@BITS task_status
FFE23H.0 00000H.0
* gap * FFE23H 000B1H
FFE23H.3 00000H.0
* gap * FFE24H 000B0H
@@SEGREG FFED4H 00004H DSEG AT
@@SEGREG @SEGREG FFED4H 00004H
@@RTARG0 FFED8H 00008H DSEG AT

View File

@ -46,7 +46,7 @@ typedef struct _system_status_
unsigned char reboot:1;
unsigned char info_fullcolor:1;
enum model_ model;
unsigned short cnt_force_off;
unsigned char force_off; // bitできないんだそうな
}system_status_;

View File

@ -12,7 +12,7 @@
#define MCU_VER_MAJOR 0x00
#define MCU_VER_MINOR 0x23
#define MCU_VER_MINOR 0x27
//#define PM_CCIC_TIM

Binary file not shown.

View File

@ -36,6 +36,8 @@
#include "sw.h"
#include "adc.h"
#include "wdt.h"
//=========================================================

View File

@ -26,7 +26,7 @@
// ========================================================
static void led_pow_normal( );
static void led_pow_hotaru( );
static void led_pow_sleep( );
static void led_pow_bt_empty();
@ -40,6 +40,19 @@ uni_info_LED info_LED;
st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 };
// スリープ中明滅のテーブル。マジか。
//const u8 LED_PTN_SLEEP[] = { 8,10,16,25, 36,47,56,62, 64,62,56,47, 36,25,16,10 };
//const u8 LED_PTN_SLEEP[] = { 8,12,24,42,64,86,104,116,120,116,104,86,64,42,24,12 };
//const u8 LED_PTN_SLEEP[] = { 0,5,18,39,64,89,109,123,128,123,109,89,64,39,18,5 };
const u8 LED_PTN_SLEEP[] = { 8,23,38,53,68,83,98,113,128,113,98,83,68,53,38,23 };
#define LED_SLEEP_FRAME_LEN 128
#define LED_SLEEP_DIM_LEN 128
#define LED_SLEEP_FRAME_NUM 16
// フルカラーとの自動判別のため、一時領域としてもっておく
bit LED_pow_red_Mirror;
@ -198,7 +211,7 @@ void LED_stop( )
enum LED_ILUM_MODE{
LED_POW_ILM_AUTO,
LED_POW_ILM_ON,
LED_POW_ILM_HOTARU,
LED_POW_ILM_SLEEP,
LED_POW_ILM_CEOFF
};
======================================================== */
@ -211,8 +224,8 @@ void tsk_led_pow( )
led_pow_normal( );
break;
case ( LED_POW_ILM_HOTARU ):
led_pow_hotaru( );
case ( LED_POW_ILM_SLEEP ):
led_pow_sleep( );
break;
case ( LED_POW_ILM_ON ):
@ -327,71 +340,32 @@ static void led_pow_bt_empty()
/* ========================================================
======================================================== */
static void led_pow_hotaru( )
static void led_pow_sleep( )
{
static u8 delay;
static u8 state;
static u16 blue_to;
static u8 time_to_next_frame;
static u8 frame;
static st_LED_dim_status LED_dim_status;
if( delay != 0 )
LED_dim_status.to = LED_PTN_SLEEP[frame] * 128;
// グラデーションのデルタを計算
LED_dim_status.delta = (( LED_dim_status.to - LED_dim_status.now ) ) / LED_SLEEP_DIM_LEN;
led_fade_to2( LED_duty_pow_blu, &LED_dim_status );
// 次のフレームに進める?
time_to_next_frame -= 1;
if( time_to_next_frame == 0 )
{
delay -= 1;
return;
}
time_to_next_frame = LED_SLEEP_FRAME_LEN;
delay = 4;
switch ( state )
{
// フェードイン
case ( 0 ):
case ( 2 ):
case ( 4 ):
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
frame += 1;
if( frame >= LED_SLEEP_FRAME_NUM -1 )
{
blue_to = 0;
LED_pow_red_Mirror = 1;
}
else
{
blue_to = vreg_ctr[VREG_C_LED_BRIGHT];
LED_pow_red_Mirror = 0;
}
break;
default:
// フェードアウト
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
{
LED_pow_red_Mirror = 0;
}
else
{
blue_to = 2;
}
break;
}
// LED更新
if( LED_duty_pow_blu != blue_to )
{
if( LED_duty_pow_blu > blue_to )
{
LED_duty_pow_blu -= 1;
}
else
{
LED_duty_pow_blu += 1;
frame = 0;
}
}
if( LED_duty_pow_blu == blue_to )
{
state += 1;
}
return;
}

View File

@ -53,7 +53,7 @@ enum LED_ILUM_MODE
{
LED_POW_ILM_AUTO = 0,
LED_POW_ILM_ON,
LED_POW_ILM_HOTARU,
LED_POW_ILM_SLEEP,
LED_POW_ILM_OFF,
LED_POW_ILM_ONLY_RED,
LED_POW_ILM_ONLY_BLUE,

View File

@ -27,6 +27,7 @@ system_status_ system_status;
uni_pool pool;
/* ========================================================
loader.c
======================================================== */
@ -41,7 +42,7 @@ void main_loop( void )
iic_mcu_start( );
EI( );
BT_init( ); // 実機やバッテリの判定、電池残量ICの設定
BT_chk();
system_status.pwr_state = OFF_TRIG;
if( system_status.reboot )

View File

@ -218,6 +218,7 @@ static void hosu_increment()
u8 now_year;
u8 now_min;
u8 now_sec;
u8 after_boundary;
// 時計を止める必要が有るので↓は一気に行って下さい
DI();
@ -233,18 +234,30 @@ static void hosu_increment()
// RWAIT = 0; ↑で行っています
// EI(); 〃
if( ( now_min > vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] )
|| ( ( now_min == vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] )
&& ( now_sec >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] ))
)
{
after_boundary = 1;
}
else
{
after_boundary = 0;
}
// 歩数計が止まっていた時間を考慮して必要なら進める //
if( last_year == now_year )
{
if( now_hour > last_hour_fny )
if( ( now_hour + after_boundary ) > last_hour_fny ) // 右辺に足してるのは負の数が困るので
{
fill_hosu_hist_hours( now_hour - last_hour_fny );
fill_hosu_hist_hours( now_hour + after_boundary - last_hour_fny );
}
}
else if( last_year == ( now_year -1 ) )
{
// 年をまたいでいるとき
u16 temp_hours = ( ( 365 + (( now_year & 0x03 ) == 1 ? 1: 0 )) * 24 ) - last_hour_fny + now_hour;
u16 temp_hours = ( ( 365 + (( now_year & 0x03 ) == 1 ? 1: 0 )) * 24 ) - last_hour_fny + now_hour + after_boundary;
fill_hosu_hist_hours( temp_hours );
}
else if( last_year < now_year )
@ -258,29 +271,19 @@ static void hosu_increment()
// ノーケアでよい
}
last_year = now_year;
last_hour_fny = now_hour;
last_hour_fny = now_hour + after_boundary;
// 実際にインクリメント
{
u8 temp;
u16* p_pedo_data = &pool.vreg_c_ext.pedo_log[ p_record ];
temp = p_record;
if(( now_min < vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) &&
( now_sec < vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] ))
if( *p_pedo_data == HOSU_NODATA )
{
temp -= 1;
if( PEDOMETER_LOG_SIZE <= temp )
{
temp = PEDOMETER_LOG_SIZE -1;
}
*p_pedo_data = 1;
}
if( pool.vreg_c_ext.pedo_log[ temp ] == HOSU_NODATA )
else if( *p_pedo_data != HOSU_MAX )
{
pool.vreg_c_ext.pedo_log[ temp ] = 1;
}
else if( pool.vreg_c_ext.pedo_log[ temp ] != HOSU_MAX )
{
pool.vreg_c_ext.pedo_log[ temp ] += 1;
*p_pedo_data += 1;
}
}
}

1275
trunk/pm.c

File diff suppressed because it is too large Load Diff

View File

@ -15,15 +15,12 @@
#define BATT_TH_LO 10
#define BATT_TH_EMPTY 5
/*
#define V_K 16 / 1.25
#define V_TH_LO (u16)( 3200 * V_K )
#define V_TH_EMPTY (u16)( 3150 * V_K )
#define V_TH_ZERO (u16)( 3100 * V_K )
*/
#define V_TH_30 42240
#define V_TH_LO 40960
#define V_TH_EMPTY 40320
#define V_TH_ZERO 39680
// 上から順に 3300, 3200, 3150, 3100[mV]
//=========================================================
#define LED_CHARGE P2.4
@ -125,6 +122,8 @@ typedef enum BT_VENDER
//=========================================================
extern u8 raw_adc_temperature;
extern BT_VENDER battery_manufacturer;
extern bit bt_force_update;
//=========================================================
@ -138,10 +137,11 @@ void PM_LCD_off( );
err PM_BL_set( u8 );
void BT_init();
void BT_chk();
void BT_get_left();
task_status_immed tski_BT_temp_update( );
task_status_immed tski_vcom_set( );
task_status_immed tski_PM_LCD_on();
@ -149,7 +149,7 @@ 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_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); while( !BT_CHG_n ){;}; LED_CHARGE = 0; bt_chg_ready = 0; }
//  これを呼ぶ前に、現在温度を教えておく必要があります。

View File

@ -5,7 +5,7 @@
#pragma inline
#include "incs.h"
#include "incs_loader.h"

View File

@ -183,9 +183,10 @@ void firm_update( )
}
// 1ブロック書き込み完了。内部ベリファイを行う
#ifdef _DBG_LED_PRINT_
P1.5 = 1;
DBG_LED_on;
#endif
if( FSL_IVerify( target_block ) != FSL_OK ){
while(1){}
// 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo…
@ -194,8 +195,10 @@ void firm_update( )
FSL_ForceReset();
// 戻ってこない //
}
#ifdef _DBG_LED_PRINT_
DBG_LED_off;
P1.5 = 0;
#endif
if( SPD )
{

View File

@ -24,7 +24,7 @@
*/
//=========================================================
u8 SW_pow_count;
u16 SW_pow_count;
bit SW_pow_mask;
u8 SW_home_count, SW_wifi_count;
@ -115,7 +115,10 @@ void tsk_sw( )
#else
set_irq( VREG_C_IRQ0, REG_BIT_SW_HOME_HOLD );
#endif
system_status.cnt_force_off = 1;
}
else if( SW_pow_count > ( HOLD_THREASHOLD + vreg_ctr[ VREG_C_OFF_DELAY ] *5 ))
{
system_status.force_off = 1;
}
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント

View File

@ -3,18 +3,13 @@
#include "config.h"
extern u8 SW_pow_count;
extern u16 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)( 1200 / SYS_INTERVAL_TICK /64 )
#else
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
#define FORCEOFF_THREASHOLD (u8)( 4000 / SYS_INTERVAL_TICK /64 )
#endif
#define HOLD_THREASHOLD (u8)( 2000 /1.024 /INTERVAL_TSK_SW )
#define FORCEOFF_THREASHOLD 50
#endif

View File

@ -203,6 +203,9 @@ task_status_immed do_command0( )
PM_reset_neg();
RESET2_neg;
vol_reset();
renge_task_immed_add( tski_vol_update );
twl_ntr_mode = 0;
// 起動時以外はリセット不要
/*
@ -235,7 +238,7 @@ extern u8 raw_adc_temperature;
extern u8 iic_burst_state;
extern bit temp_zone_charge_enable;
extern bit temp_zone_charge_disable;
extern bit bt_chg_ready;
/* ========================================================
@ -295,7 +298,7 @@ task_status_immed tski_mcu_info_read()
break;
case( 7 ):
IICA = ( temp_zone_charge_enable | ( bt_chg_ready << 1 ) );
IICA = ( !temp_zone_charge_disable | ( bt_chg_ready << 1 ) );
break;
default:

View File

@ -29,6 +29,7 @@ static void send_getup_to_soc();
//=========================================================
extern bit info_led_off;
extern bit going_to_sleep;
extern bit bt_chg_ready;
static u8 timeout_sleep = 0;
@ -92,17 +93,21 @@ void tsk_sys( )
// 電源投入 //
iic_mcu_start( );
BT_init(); // 実機やバッテリの判定、電池残量ICの設定
bt_force_update = 0;
BT_chk(); // 実機やバッテリの判定、電池残量ICの設定
#ifndef _ALLOW_NOBATT_
if( system_status.model == MODEL_JIKKI_NOBATT )
{
renge_task_interval_run_force = 1;
system_status.pwr_state = OFF_TRIG;
return;
}
#endif
// 残量チェック
BT_get_left(); // 先に、BT_init()が実行されている必要があります。
BT_get_left(); // 先に、BT_chk()が実行されている必要があります。
if(
// ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) &&
( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) )
@ -188,10 +193,10 @@ void tsk_sys( )
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 );
BT_init();
BT_chk();
}
LED_init( ); // reboot時の↑BT_Chk,BT_init後に行いたい
LED_init( ); // reboot時の↑BT_Chk,BT_chk後に行いたい
system_status.reboot = 0;
system_status.pwr_state = ON;
@ -218,7 +223,7 @@ void tsk_sys( )
send_getup_to_soc();
}
else
{
{
PM_VDD_ecoMode();
system_status.pwr_state = SLEEP;
renge_task_interval_run_force = 1;
@ -241,7 +246,7 @@ void tsk_sys( )
case SLEEP: //------------------------------------------
chk_emergencyExit();
// スリープから復帰
if( !SLP_REQ ){
if( !SLP_REQ ){
PM_VDD_normMode();
wait_ms( 5 ); // tdly_sw
send_getup_to_soc();
@ -261,7 +266,7 @@ void tsk_sys( )
return;
}
vreg_ctr[ VREG_C_LED_TUNE ] = LED_TUNE_ILM_OFF;
system_status.cnt_force_off = 0;
system_status.force_off = 0;
LED_stop( );
IIC_ctr_Stop( );
@ -304,21 +309,23 @@ void tsk_sys( )
PM_sys_pow_off( );
iic_mcu_stop( );
timeout = 0;
system_status.pwr_state = BT_CHARGE;
SW_pow_mask = 1;
SW_pow_count = 0;
// no break //
case BT_CHARGE:
if( !PM_EXTDC_n )
{
// アダプタが刺さってるときはこのブロックを繰り返す。
/// ↓は中で初期化フラグをもってるので呼びまくって良い
iic_mcu_start( );
BT_init();
BT_chk(); // 要ポーリング(電池抜かれ検出のため)
// ↑の中で必要だったらI2C_m_init呼んでます
// アダプタ有り:充電温度監視
if( SW_pow_count >= 10 ) // 電源スイッチが押されるのを待つ
@ -327,19 +334,24 @@ void tsk_sys( )
system_status.poweron_reason = PWSW;
system_status.pwr_state = OFF;
}
if( system_status.model != MODEL_JIKKI )
{
iic_mcu_stop( );
}
}
else
{
// 省電力へ移行
system_status.poweron_reason = NONE;
iic_mcu_stop( );
PM_Chg_Stop();
bt_force_update = 1;
while( RWST )
{;}
iic_mcu_stop( );
// 割り込み待ちで寝る //
RTCIMK = 1;
@ -456,14 +468,10 @@ static void chk_emergencyExit(){
======================================================== */
static void force_off_check()
{
if( system_status.cnt_force_off != 0 )
if( system_status.force_off )
{
system_status.cnt_force_off += 1;
if( system_status.cnt_force_off >= ( vreg_ctr[ VREG_C_OFF_DELAY ] * 64 ) )
{
system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1;
}
system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1;
}
}

View File

@ -20,7 +20,6 @@ extern u8 mcu_info_read(); // task_misc.c
extern u8 iic_burst_state;
extern bit vol_by_twl;
// ********************************************************
@ -297,16 +296,19 @@ void vreg_ctr_write( u8 adrs, u8 data )
vreg_ctr[ VREG_C_COMMAND3 ] = data;
break;
case ( VREG_C_VOL_DIGITAL ):
vreg_ctr[ VREG_C_VOL_DIGITAL ] = ( data & ~REG_BIT_VOL_RESET) ; // コマンドビットが混ざってる【使用時に】マスクせよ
if(( data & REG_BIT_VOL_RESET ) != 0 )
case ( VREG_C_VOL_OPTION ):
if(( vreg_ctr[ VREG_C_VOL_OPTION ] ^ data ) & REG_BIT_VOL_FORCE_SLIDER )
{
vol_by_twl = 0;
renge_task_immed_add( tski_vol_update );
}
vreg_ctr[ VREG_C_VOL_OPTION ] = data;
break;
#define REG_BIT_VOL_FORCE_REG ( 1 << 2 )
#define REG_BIT_VOL_FORCE_SLIDER ( 1 << 1 )
// read only //
case ( VREG_C_MCU_VER_MAJOR ):
case ( VREG_C_MCU_VER_MINOR ):
// VREG_C_TUNE = 0x08,
@ -327,9 +329,9 @@ void vreg_ctr_write( u8 adrs, u8 data )
case ( VREG_C_RTC_SEC_FINE_H ):
// VREG_C_ACC_RESERVE,
// VREG_C_ACC_HOSU_HIST = 0x4F,
// read only //
break;
// ½¾lð<E2809A>X<EFBFBD>V·é¾¯ //
default:
/*
case ( VREG_C_IRQ_MASK0 ):
@ -348,6 +350,7 @@ void vreg_ctr_write( u8 adrs, u8 data )
case ( VREG_C_RTC_ALARM_YEAR ):
case ( VREG_C_ACC_W_ADRS ):
case ( VREG_C_OFF_DELAY ):
case ( VREG_C_VOL_DIGITAL ):
*/
if( adrs < VREG_C_ENDMARK_ )
{
@ -385,6 +388,15 @@ u8 vreg_ctr_read( u8 adrs )
( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode
( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32
}
else if( adrs == VREG_C_RTC_SEC_FINE_L )
{
rsub_temp = RSUBC;
return( (u8)( rsub_temp & 0xFF ) );
}
else if( adrs == VREG_C_RTC_SEC_FINE_H )
{
return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) );
}
else if( adrs == VREG_C_ACC_HOSU_HIST )
{
return( hosu_read() );
@ -395,15 +407,6 @@ u8 vreg_ctr_read( u8 adrs )
// vreg_free_adrs += 1; // ここで加算してしまうとインデックスがずれる
return( temp );
}
else if( adrs == VREG_C_RTC_SEC_FINE_L )
{
rsub_temp = RSUBC;
return( (u8)( rsub_temp & 0xFF ) );
}
else if( adrs == VREG_C_RTC_SEC_FINE_H )
{
return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) );
}
else if( adrs == VREG_CX_INFO )
{
// I2C_mを使うので、ここからでは割り込みが使えなくて困る

View File

@ -112,10 +112,11 @@
#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10
#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40
// VOL(0x25)
#define REG_BIT_VOL_RESET ( 1 << 6 )
#define REG_BIT_VOL_FORCE_REG ( 1 << 7 )
// VOL option (0x26)
#define REG_BIT_VOL_FORCE_REG ( 1 << 2 )
#define REG_BIT_VOL_FORCE_SLIDER ( 1 << 1 )
#define REG_BIT_VOL_BY_SPI ( 1 << 0 )
// FORCE_REGの方が弱い
// CODEC上のPMIC NTR の代理レジスタ
#define REG_BIT_TWL_REQ_OFF ( 1 << 6 )
@ -189,6 +190,7 @@ enum VREG_C_ADRS
VREG_C_OFF_DELAY = 0x24,
VREG_C_VOL_DIGITAL = 0x25,
VREG_C_VOL_OPTION,
VREG_C_LED_BRIGHT = 0x28,
VREG_C_LED_POW,

View File

@ -21,7 +21,10 @@ u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK];
extern bit twl_ver_read;
extern bit cam_led_update;
extern bit twl_ntr_mode;
extern bit vol_by_twl;
extern bit vol_changed_by_twl;
/* ========================================================
@ -44,10 +47,9 @@ void vreg_twl_write( u8 adrs, u8 data )
{
case ( REG_TWL_INT_ADRS_VOL ):
{
vol_by_twl = 1;
vol_changed_by_twl = 1;
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data;
renge_task_immed_add( tski_vol_update );
set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE );
break;
}
@ -130,7 +132,13 @@ u8 vreg_twl_read( u8 phy_adrs )
return( temp );
case( REG_TWL_INT_ADRS_VOL ):
return( vreg_twl[ REG_TWL_INT_ADRS_VOL ] );
if( vreg_ctr[ VREG_C_SND_VOL ] != 1 ){
return( vreg_ctr[ VREG_C_SND_VOL ] /2 );
}
else
{
return( 1 );
}
case( REG_TWL_INT_ADRS_VER_INFO ):
// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // 速度的に無理なので

View File

@ -1,36 +1,16 @@
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 -qvjl2w -sainter_asm -zpb -no pm.c
pm.c(67) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(105) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(189) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(197) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(415) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
pm.c(482) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(485) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(762) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
pm.c(977) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1077) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1078) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1153) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(106) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(106) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(107) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(107) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(108) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(108) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(109) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(110) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(111) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(112) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1095) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 23 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 -qvjl2w -sainter_asm -zpb -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\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
"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 -qvjl2w -sainter_asm -zpb -no task_sys.c
task_sys.c(193) : CC78K0R warning W0401: Conversion may lose significant digits
task_sys.c(452) : CC78K0R warning W0401: Conversion may lose significant digits
task_sys.c(454) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
Compilation complete, 0 error(s) and 3 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 -gb0FEFBFFh -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.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf
Object Conversion Complete, 0 error(s) and 0 warning(s) found.
@ -40,4 +20,4 @@ intel-HEX to bsr bin converter
file converted!
Build Total error(s) : 0 Total warning(s) : 23
Build Total error(s) : 0 Total warning(s) : 3

View File

@ -23,7 +23,7 @@ SubClock=None
Count=0
[Main]
Geometry=-1211, 40, 1200, 882
Window=Max
Window=Normal
MDI_MAX=OFF
Button=ON
Mode=Auto
@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=56, 72, 844, 790
Geometry=86, 109, 754, 790
Window=Normal
DispStart=975
CaretPos=988,0
DispStart=83
CaretPos=114,20
Mode=Normal
DispFile=
Address1=
@ -140,17 +140,33 @@ SaveStart=
SaveEnd=
Accumulative=ON
[Source1]
Geometry=0, 0, 844, 790
Geometry=0, 0, 754, 790
Window=Normal
DispStart=952
CaretPos=727,2
DispStart=331
CaretPos=356,0
Mode=Normal
DispFile=led.c
Accumulative=ON
[Source2]
Geometry=0, 0, 754, 790
Window=Normal
DispStart=379
CaretPos=433,0
Mode=Normal
DispFile=adc.c
Accumulative=ON
[Source3]
Geometry=25, 25, 754, 790
Window=Normal
DispStart=97
CaretPos=217,0
Mode=Normal
DispFile=pm.c
Accumulative=ON
[Assemble]
Geometry=282, 92, 968, 626
Window=Hide
DispStart=864531456
DispStart=864505856
CaretPos=0,0
Address1=
Address2=
@ -194,17 +210,17 @@ SaveStart=
SaveEnd=
[Memory]
Geometry=224, 254, 968, 626
Window=Normal
Boundary=163
Window=Hide
Boundary=0
Format=Hex
Mode=Byte
Endian=Little
Endian=
Ascii=OFF
Idtag=OFF
Address=
DispStart=00007DC0
CaretPosData=0, 2012
CaretPosAscii=3, 2012
DispStart=FFFFFFFF
CaretPosData=0, 0
CaretPosAscii=0, 0
Address1=
Address2=
Address3=
@ -259,9 +275,9 @@ Destination=0
[I/O Port]
Line=0
[Stack]
Geometry=0, 0, 400, 300
Window=Hide
Boundary=0
Geometry=498, 620, 400, 300
Window=Normal
Boundary=13762687
Mode=Proper
[Sfr]
Geometry=255, 105, 596, 915
@ -968,63 +984,69 @@ Count=0
Geometry=854, -3, 441, 595
Window=Normal
Boundary=18088086
0=+iic_send_work,P,N,A,-,1
1=.hysteresis,P,N,A,+,1
2=.vreg_ctr[11],D,N,A,+,1
3=.system_status,.,N,A,+,1
4=.vreg_ctr[13],H,N,A,+,1
5=.P4.2,P,S,A,+,1
6=.hoge,P,N,A,+,1
7=.work,P,N,A,+,1
8=.new_val,P,N,A,+,1
9=.raw_adc_temperature,D,N,A,+,1
10=.bt_chg_ready,P,N,A,+,1
11=.pu20,P,S,A,+,1
12=.temp_zone_charge_enable,P,N,A,+,1
13=.bt_remain_old,P,N,A,+,1
14=.vreg_ctr,P,N,A,+,1
15=.system_status,.,N,A,+,1
16=.battery_manufacturer,P,N,A,+,1
17=.bt_comp,.,N,A,+,1
18=.per0,P,S,A,+,1
19=.pu20,P,S,A,+,1
20=.rtcc0,P,S,A,+,1
21=.vol_data,P,N,A,+,1
Line=22
0=.p4.3,P,S,A,+,1
1=.P2.4,P,S,A,+,1
2=.bt_chg_ready,P,N,A,+,1
3=.temp_zone_charge_enable,P,N,A,+,1
4=.P5.1,P,S,A,+,1
5=.vreg_ctr,P,N,A,+,1
6=.P5.3,P,S,A,+,1
7=.heikinka_h,P,N,A,+,1
8=.system_status,.,N,A,+,1
9=.battery_manufacturer,P,N,A,+,1
10=.bt_comp,.,N,A,+,1
11=.raw_adc_temperature,P,N,A,+,1
12=.P1,B,S,A,+,1
13=.bt_checked,P,N,A,+,1
14=.TDR06,P,S,A,+,1
15=.LED_dim_status,P,N,A,+,1
Line=16
[Quick Watch]
0=p4.3,P,A,1
1=work,P,A,1
2=new_val,P,A,1
3=vol_data,P,A,1
4=hoge,P,A,1
5=P4.2,P,A,1
6=vreg_ctr[13],P,A,1
7=vreg_ctr[11],P,A,1
8=system_status,P,A,1
9=hysteresis,P,A,1
10=pre0,P,A,1
11=per0,P,A,1
12=per1,P,A,1
13=rtcc0,P,A,1
14=pu20,P,A,1
15=iic_send_work,P,A,1
0=temp16,P,A,1
1=SW_pow_count,P,A,1
2=bt_checked,P,A,1
3=P1,B,A,1
4=PM1,B,A,1
5=bt_param_sent,P,A,1
6=P5.3,P,A,1
7=bt_chg_ready,P,A,1
8=temp_zone_charge_enable,P,A,1
9=heikinka_h,P,A,1
10=P2.4,P,A,1
11=P5.1,P,A,1
12=raw_adc_temperature,P,A,1
13=LED_dim_status,P,A,1
14=LED_duty_pow_blu,P,A,1
15=TDR06,P,A,1
[Software Break]
Geometry=792, 551, 445, 260
Window=Normal
Width=150 30 200 100
Name0=Swb00001
Address0=pm.c#_BT_get_left+0xfe
Name0=Swb00002
Address0=pm.c#_BT_get_left+0x129
Window0=ASM
Status0=ON
Name1=Swb00004
Address1=pm.c#_BT_get_left+0x141
Name1=Swb00005
Address1=pm.c#_BT_get_left+0xd0
Window1=ASM
Status1=ON
Name2=Swb00005
Address2=pm.c#_tski_BT_temp_update+0x8a
Name2=Swb00007
Address2=pm.c#_BT_get_left+0x10f
Window2=ASM
Status2=ON
Count=3
Name3=Swb00001
Address3=task_sys.c#_tsk_sys+0x222
Window3=ASM
Status3=ON
Name4=Swb00003
Address4=led.c#_led_pow_sleep+0x24
Window4=ASM
Status4=ON
Name5=Swb00006
Address5=pm.c#_tsk_batt+0x69
Window5=ASM
Status5=ON
Count=6
[Reset]
Debugger=ON
Symbol=OFF

View File

@ -686,6 +686,74 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi
VF78K0Rchk=0
VF78K0Rvs=
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[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_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=reboot.h
Include19=incs.h
Include20=accero.h
Include21=pedometer.h
Include22=adc.h
Include23=led.h
Include24=batt_params.h
Include25=i2c_twl_defs.h
Include26=renge\renge_task_intval.h
Include27=i2c_twl.h
Include28=sw.h
Include29=self_flash.h
Include30=pool.h
Include31=pedo_lpf_coeff.h
Include32=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include33=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
Include34=voltable.h
Include35=magic.h
[BuildBefore-AfterCmd]
Before1=touch magic.c
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
[Options.LK78K0R 0]
Version=100
O0=bsr_k0r.lmf
@ -785,7 +853,7 @@ P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=7EFBFF
GBValue=FEFBFF
KM=1
KD=0
KP=0
@ -978,71 +1046,3 @@ DefaultMode2=1
DefaultMode3=1
DefaultMode4=1
DefaultMode5=1
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[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_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=reboot.h
Include19=incs.h
Include20=accero.h
Include21=pedometer.h
Include22=adc.h
Include23=led.h
Include24=batt_params.h
Include25=i2c_twl_defs.h
Include26=renge\renge_task_intval.h
Include27=i2c_twl.h
Include28=sw.h
Include29=self_flash.h
Include30=pool.h
Include31=pedo_lpf_coeff.h
Include32=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include33=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
Include34=voltable.h
Include35=magic.h
[BuildBefore-AfterCmd]
Before1=touch magic.c
After1=ruby nec_s_2_bsrbin2.rb bsr.hex

View File

@ -1,15 +1,21 @@
[ProjectManager]
FrameMax=1
FrameX=168
FrameY=127
FrameX=0
FrameY=0
FrameCX=1299
FrameCY=1044
OpenFile1=ProjectWindow
PrjPos=0,2,754,3,253
OpenFile2=adc.c,0,330,330,1574,1087,18,267,18,0
OpenFile3=OutputWindow
OpenFile2=config.h,0,294,66,1538,823,18,42,29,0
OpenFile3=main.c,0,125,195,1104,832,35,73,34,0
OpenFile4=task_sys.c,0,220,220,1464,977,0,137,31,0
OpenFile5=self_flash.c,0,176,176,1144,801,8,348,13,0
OpenFile6=task_misc.c,0,198,198,1166,823,48,91,48,0
OpenFile7=pedo_alg_thre_det2.c,0,220,220,1188,845,0,58,0,0
OpenFile8=pm.c,0,6,96,1250,853,26,208,0,0
OpenFile9=led.c,0,242,242,1210,867,0,348,0,0
OpenFile10=OutputWindow
OutputPos=0,36,981,694,1556
OpenFile4=config.h,0,308,308,1552,1065,0,3,0,0
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0

View File

@ -12,7 +12,7 @@ T=4c3198b9
8=reboot.h
9=magic.h
[pm.c]
T=4c3318e4
T=4c3c0c4e
1=incs.h
2=adc.h
3=led.h
@ -26,7 +26,7 @@ T=4c072cf1
1=config.h
2=incs.h
[main.c]
T=4c32d86f
T=4c3c0229
1=incs_loader.h
2=WDT.h
3=rtc.h
@ -36,7 +36,7 @@ T=4c32d86f
7=adc.h
8=pool.h
[magic.c]
T=4c331888
T=4c3c2c86
1=config.h
[WDT.c]
T=4bf0d1e1
@ -52,14 +52,14 @@ T=4c29c700
3=i2c_twl_defs.h
4=i2c_twl.h
[led.c]
T=4c31a042
T=4c3c31b3
1=incs.h
2=led.h
[rtc.c]
T=4c0cd30b
1=incs.h
T=4c3c10bc
1=incs_loader.h
[vreg_ctr.c]
T=4c319dfc
T=4c3afe1f
1=incs.h
2=vreg_ctr.h
3=rtc.h
@ -70,14 +70,14 @@ T=4c319dfc
8=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
9=fsl_user.h
[vreg_twl.c]
T=4c2c3fca
T=4c3af447
1=incs.h
2=jhl_defs.h
3=led.h
4=vreg_twl.h
5=vreg_ctr.h
[adc.c]
T=4c32ed7a
T=4c3b0f6d
1=incs.h
2=adc.h
3=pm.h
@ -98,7 +98,7 @@ T=4c2aacdb
2=incs.h
3=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
[self_flash.c]
T=4c319f1f
T=4c356ee9
1=incs_loader.h
2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
3=fsl_user.h
@ -107,7 +107,7 @@ T=4c319f1f
6=magic.h
7=pm.h
[sw.c]
T=4c2d5d86
T=4c3ad20e
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -121,7 +121,7 @@ T=4c2aacdb
2=renge\renge.h
3=pm.h
[task_misc.c]
T=4c2aacdb
T=4c3aede4
1=incs.h
2=renge\renge.h
3=pm.h
@ -130,7 +130,7 @@ T=4c2aacdb
6=i2c_mcu.h
7=led.h
[task_sys.c]
T=4c330ab7
T=4c3c0229
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -142,7 +142,7 @@ T=4c330ab7
9=adc.h
10=self_flash.h
[pedo_alg_thre_det2.c]
T=4c2aacdb
T=4c36811e
1=incs.h
2=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
3=accero.h
@ -175,11 +175,11 @@ T=4c119cde
T=4c075832
1=config.h
[config.h]
T=4c32adb6
T=4c3ae216
[user_define.h]
T=4c2856fa
[bsr_system.h]
T=4c22c0cc
T=4c3ac965
[renge\renge.h]
T=4c318e0f
1=renge\renge_defs.h
@ -190,7 +190,7 @@ T=4c073c5a
T=4c284e89
1=renge\renge_defs.h
[vreg_ctr.h]
T=4c2d8983
T=4c3af447
1=config.h
[vreg_twl.h]
T=4c072cf1
@ -205,13 +205,13 @@ T=4bf0d1e0
[i2c_ctr.h]
T=4bf0d1e1
[pm.h]
T=4c32fa1a
T=4c3c0229
[rtc.h]
T=4bf0d1e1
[reboot.h]
T=4bf0d1e1
[incs.h]
T=4c318e3d
T=4c36dec8
1=jhl_defs.h
2=user_define.h
3=bsr_system.h
@ -225,7 +225,8 @@ T=4c318e3d
11=accero.h
12=pm.h
13=sw.h
14=WDT.h
14=adc.h
15=WDT.h
[accero.h]
T=4bf0d1e1
1=jhl_defs.h
@ -233,12 +234,12 @@ T=4bf0d1e1
[pedometer.h]
T=4bfd1372
[adc.h]
T=4bf0d1e1
T=4c3b0190
1=jhl_defs.h
[led.h]
T=4c31d05a
T=4c3c1235
[batt_params.h]
T=4c2c4bd3
T=4c36b4fc
[i2c_twl_defs.h]
T=4bf0d1e1
[renge\renge_task_intval.h]
@ -247,7 +248,7 @@ T=4c072cf1
[i2c_twl.h]
T=4bf4e29e
[sw.h]
T=4c070c1a
T=4c3ad191
1=config.h
[self_flash.h]
T=4bf0d1e0
@ -263,4 +264,4 @@ T=45f12258
[voltable.h]
T=4c31be66
[magic.h]
T=4c316840
T=4c356d89