HAL追加

三項式は大きくなるのでifに分解など
 その結果、歩数計周りでいじったので(PC上で)テスト予定
+= 1 を ++ にするなど
I2C_ctrの修正。処理が滞ったときにnakを返す確率が下がったかもしれない
共通コードをまとめる(twl vol)
コンパイラのオブション変更


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@352 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
n2232 2011-07-14 07:05:57 +00:00
parent 3c14958ea8
commit 2c5491b72f
42 changed files with 2590 additions and 2332 deletions

Binary file not shown.

Binary file not shown.

View File

@ -80,6 +80,7 @@
<ItemGroup>
<ClCompile Include="..\accero.c" />
<ClCompile Include="..\adc.c" />
<ClCompile Include="..\hal.c" />
<ClCompile Include="..\i2c_ctr.c" />
<ClCompile Include="..\i2c_mcu.c" />
<ClCompile Include="..\i2c_twl.c" />
@ -113,6 +114,7 @@
<ClInclude Include="..\config.h" />
<ClInclude Include="..\fsl.h" />
<ClInclude Include="..\fsl_user.h" />
<ClInclude Include="..\hal.h" />
<ClInclude Include="..\i2c_ctr.h" />
<ClInclude Include="..\i2c_mcu.h" />
<ClInclude Include="..\i2c_twl.h" />

View File

@ -96,6 +96,9 @@
<ClCompile Include="..\sim\simFixture.c">
<Filter>ソース ファイル</Filter>
</ClCompile>
<ClCompile Include="..\hal.c">
<Filter>ソース ファイル</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\accero.h">
@ -197,6 +200,9 @@
<ClInclude Include="..\sim\sfrAlias.h">
<Filter>ヘッダー ファイル</Filter>
</ClInclude>
<ClInclude Include="..\hal.h">
<Filter>ヘッダー ファイル</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\bsr_mcu.dr" />

View File

@ -84,7 +84,7 @@ task_status_immed tski_cbk_accero( )
if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, &vreg_ctr[VREG_C_ACC_XL] )
!= ERR_SUCCESS )
{
err_count += 1;
err_count ++;
if( err_count < 8 )
{
// リトライ

View File

@ -117,9 +117,9 @@ void tsk_adc( )
if( vol_polling < 5 )
{
renge_task_immed_add( tski_vol_update );
vol_polling = 200 / SYS_INTERVAL_TICK + 5; // 5回/sec
vol_polling = (u8)(200 / SYS_INTERVAL_TICK) + 5; // 5回/sec
}
vol_polling -= 1;
vol_polling --;
ADCEN = 1;
@ -281,12 +281,20 @@ static u8 getmean3( u8 * hist )
{
if( *hist > *( hist + 2 ) )
{
return( ( *( hist + 1 ) > *( hist + 2 ) ) ? *( hist + 1 ) : *( hist + 2 ) );
if( *( hist + 1 ) > *( hist + 2 ) )
{
return( *( hist + 1 ) );
}
else
{
return( *( hist + 2 ) );
}
}
else
{
return( *hist );
}
}else{
if( *hist > *( hist + 2 ) )
{
@ -294,7 +302,14 @@ static u8 getmean3( u8 * hist )
}
else
{
return( ( *( hist + 1 ) < *( hist + 2 ) ) ? *( hist + 1 ) : *( hist + 2 ) );
if( *( hist + 1 ) < *( hist + 2 ) )
{
return( *( hist + 1 ) );
}
else
{
return( *( hist + 2 ) );
}
}
}
}
@ -341,13 +356,14 @@ case ( ADC_SEL_AMB_BRIT ): //
case ( ADC_SEL_BATT_TEMP ):
EI();
raw_adc_temperature = adc_data;
#ifdef _DEBUG_BT_TEMP_
if( vreg_ctr[ VREG_C_COMMAND3 ] == 't' )
{
raw_adc_temperature = vreg_ctr[ VREG_C_DBG01 ];
}
#endif
if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF )
{
raw_adc_temperature = adc_data;
}
else
{
raw_adc_temperature = vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ];
}
if( (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) &&
(( system_status.pwr_state == ON ) ||
@ -374,7 +390,11 @@ case ( ADC_SEL_AMB_BRIT ): //
{
ADCEN = 0; // 止めてしまう
adc_updated = true;
index = ( index == 2 ) ? 0 : ( index + 1 ); // ノイズ取りの配列インデックス
if( ++index > 2 ) // ノイズ取りの配列インデックス
{
index = 0;
}
}
ADIF = 0; // ←これをしないと、いっこ前のチャンネルのデータの完了で直後に割り込む可能性がある
}
@ -454,7 +474,7 @@ static void adc_filter( u8 new_val, filter_work *work )
if( abs( new_val - *( work -> value_used )) > 2 )
{
// 大きく離れた
work -> large_diff_count += 1;
work -> large_diff_count ++;
if( work -> large_diff_count > 16 )
{
*( work -> value_used ) = new_val;
@ -468,11 +488,11 @@ static void adc_filter( u8 new_val, filter_work *work )
// 近所の値でも、ある期間でいっぱい偏っていたらそっちに寄せる
if( *( work -> value_used ) < new_val )
{
work -> diffs += 1;
work -> diffs ++;
}
else if( *( work -> value_used ) > new_val )
{
work -> diffs -= 1;
work -> diffs --;
}
if( --( work -> kikan ) == 0 )
@ -493,82 +513,3 @@ static void adc_filter( u8 new_val, filter_work *work )
}
}
#if 0
// getmean使用 //
__interrupt void int_adc( )
{
static u8 hist_3D[3];
static u8 hist_snd_vol[3];
static u8 hist_bt_temp[3];
static u8 index;
volatile u8 adc_data;
adc_data = ADCRH;
switch ( ADS )
{
/*
case ( ADC_SEL_AMB_BRIT ): // 環境明るさ
vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data;
break;
*/
case ( ADC_SEL_3D ):
hist_3D[index] = adc_data;
EI();
adc_raw_dep = getmean3( hist_3D );
break;
case ( ADC_SEL_VOL ):
hist_snd_vol[index] = adc_data;
EI();
if( system_status.model == MODEL_TS_BOARD )
{
adc_raw_vol = getmean3( hist_snd_vol );
}
else
{
adc_raw_vol = ( 255 - getmean3( hist_snd_vol ));
}
break;
case ( ADC_SEL_BATT_TEMP ):
hist_bt_temp[index] = adc_data;
EI();
raw_adc_temperature = getmean3( hist_bt_temp );
if( (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) &&
(( system_status.pwr_state == ON ) ||
( system_status.pwr_state == SLEEP )
)
)
{
renge_task_immed_add( tski_BT_temp_update );
}
break;
/* 呼ばれません
case ( ADC_SEL_BATT_DET ):
break;
*/
}
// もっとまともな書き方がありそうだ
if( ADS < ADC_SEL_BATT_DET )
{
ADS += 1; // 次のチャンネル
ADIF = 0; // ←これをしないと、いっこ前のチャンネルのデータの完了で直後に割り込む可能性がある
}
else
{
ADCEN = 0; // 止めてしまう
adc_updated = true;
index = ( index == 2 ) ? 0 : ( index + 1 ); // ノイズ取りの配列インデックス
}
}
#endif

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -6,8 +6,6 @@
//#define _debug_led_
//#define _ALLOW_NOBATT_
//#define _DEBUG_BT_FUEL_
//#define _DEBUG_BT_TEMP_
//#define _DBG_PEDO_AUTO_ENABLE_
//#define _DBG_LED_PRINT_
//#define _DBG_FORCE_FULLCOLOR_
@ -27,7 +25,7 @@
#define MCU_VER_MAJOR 0x01
#define MCU_VER_MINOR 0x36
#define MCU_VER_MINOR 0x37
// ↑改訂の時は↓気をつけないと体験台の生産できないからね!
#ifdef _TAIKENDAI_SEISAN_SPECIAL_

160
branches/sim/hal.c Normal file
View File

@ -0,0 +1,160 @@
#ifndef _WIN32
#pragma SFR
#endif
#include "incs_loader.h"
#define WIFI_txLatch PIF21 // 電波送信パルス 本来 led.h で定義
// HALでかぶせるの ////////////////////////////////////////
// こんな事するなら正論理にすr...いや何でもない
bit PM_EXTDC_n;
bit BT_IN_CHG_n;
bit SW_POW_n;
bit SW_HOME_n;
bit SW_WIFI_n;
bit SHELL_OPEN;
/*
#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 )
#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 )
//#define REG_BIT_HAL0_PM_IRQ_n ( 1 << 5 ) // 使わない
#define REG_BIT_HAL0_WL_TX ( 1 << 4 )
#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 )
#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 )
#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 )
#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 )
#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 )
#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 )
#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 )
#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 )
*/
// 載せ替え
// チャタリング除去ならここでやったり(押し時間カウントは別)
void hal_update()
{
u8 temp_conf = vreg_ctr[ VREG_C_HAL_OVW_CONT0 ];
u8 temp_dat = vreg_ctr[ VREG_C_HAL_OVW_DAT0 ];
// アダプタ有無
if( temp_conf & REG_BIT_HAL0_PM_EXTDC_n )
{
// 三項式はなんだか大きくなりがち
if(( temp_dat & REG_BIT_HAL0_PM_EXTDC_n ) == 0 )
{
PM_EXTDC_n = 0;
}
else
{
PM_EXTDC_n = 1;
}
}
else
{
PM_EXTDC_n = PM_EXTDC_n_RAW;
}
// 充電中?
if( temp_conf & REG_BIT_HAL0_BT_IN_CHG_n )
{
if(( temp_dat & REG_BIT_HAL0_BT_IN_CHG_n ) == 0 )
{
BT_IN_CHG_n = 0;
}
else
{
BT_IN_CHG_n = 1;
}
}
else
{
BT_IN_CHG_n = BT_IN_CHG_n_RAW;
}
// 電源釦
if( temp_conf & REG_BIT_HAL0_SW_POW_n )
{
if(( temp_dat & REG_BIT_HAL0_SW_POW_n ) == 0 )
{
SW_POW_n = 0 ;
}
else
{
SW_POW_n = 1;
}
}
else
{
SW_POW_n = SW_POW_n_RAW;
}
// 実家釦
if( temp_conf & REG_BIT_HAL0_SW_HOME_n )
{
if(( temp_dat & REG_BIT_HAL0_SW_HOME_n ) == 0 )
{
SW_HOME_n = 0;
}
else
{
SW_HOME_n = 1;
}
}
else
{
if( system_status.model == MODEL_TS_BOARD )// 接続先のポートが違うため
{
SW_HOME_n = SW_HOME_n_TSBOARD_RAW;
}
else
{
SW_HOME_n = SW_HOME_n_JIKKI_RAW;
}
}
// 無線開閉
if( temp_conf & REG_BIT_HAL0_SW_WIFI_n )
{
if(( temp_dat & REG_BIT_HAL0_SW_WIFI_n ) == 0 )
{
SW_WIFI_n = 0;
}
else
{
SW_WIFI_n = 1;
}
}
else
{
SW_WIFI_n = SW_WIFI_n_RAW;
}
// 蝶番
if( temp_conf & REG_BIT_HAL0_SHELL_OPEN )
{
if(( temp_dat & REG_BIT_HAL0_SHELL_OPEN ) == 0 )
{
SHELL_OPEN = 1;
}
else
{
SHELL_OPEN = 0;
}
}
else
{
SHELL_OPEN = SHELL_OPEN_RAW;
}
// 無線電波発射
if( temp_conf & REG_BIT_HAL0_WL_TX )
{
WIFI_txLatch = 1;
}
}

16
branches/sim/hal.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef _hal_h_
#define _hal_h_
extern bit PM_EXTDC_n;
extern bit BT_IN_CHG_n;
extern bit SW_POW_n;
extern bit SW_HOME_n;
extern bit SW_WIFI_n;
extern bit SHELL_OPEN;
// ========================================================
void hal_update();
#endif

View File

@ -74,13 +74,10 @@ __interrupt void int_iic_ctr( )
{
static enum en_IIC_STATE state = IIC_IDLE;
static u8 reg_adrs;
static u8 reg_adrs_internal;
static u8 tx_buf;
u8 rx_buf;
static u8 adrs_access_from;
EI();
// 読み出し終了
if( !ACKD ) // 割り込み要因はNAKデータ送信の最後
{
@ -106,7 +103,11 @@ __interrupt void int_iic_ctr( )
hosu_read_end( ); // 歩数計読み出し終了
rtc_unlock( );
iic_burst_state = 0;
return;
if( !SPD && !STD )
{
EI();
return;
}
}
if( SPD ) // 割り込み要因はストップコンディション
@ -116,7 +117,11 @@ __interrupt void int_iic_ctr( )
SPIE = 0;
// I2C終了時に何かする物 //
rtc_unlock( );
return;
if( !STD )
{
EI();
return;
}
}
if( STD ) // 割り込み要因:スタートコンディション
@ -132,6 +137,8 @@ __interrupt void int_iic_ctr( )
}
}
EI();
switch ( state )
{
case ( IIC_IDLE ):
@ -215,7 +222,7 @@ __interrupt void int_iic_ctr( )
break;
default:
iic_burst_state = 0; // 保険
reg_adrs += 1;
reg_adrs ++;
}
if( state == IIC_TX )

View File

@ -79,7 +79,7 @@ extern bit i2c_mcu_time_out_error;
// ========================================================
void nop8()
{
// 実は nop11 位なのだが
// ここに来る call に3clk, return に 6clk
}
@ -419,8 +419,8 @@ __interrupt void int_iic10( )
if( iic_send_wo_dma_len != 0 )
{
SIO10 = *p_iic_send_wo_dma_dat;
p_iic_send_wo_dma_dat++;
iic_send_wo_dma_len--;
p_iic_send_wo_dma_dat ++;
iic_send_wo_dma_len --;
return;
}
@ -647,7 +647,7 @@ err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
iic_mcu_send_a_byte( 0x20 );
iic_mcu_send_a_byte( count );
count++;
count ++;
iic_mcu_send_sp( );
iic_mcu_busy = false;

View File

@ -82,7 +82,7 @@ enum IIC_TWL_STATE{
#define wait_next { \
tot = 0; \
while( IICAIF != 1 ){ \
tot++; \
tot ++; \
if( tot == 0 ){ \
LREL = 1; \
return; \

View File

@ -29,6 +29,8 @@
#include "jhl_defs.h"
#include "user_define.h"
#include "hal.h"
#include "bsr_system.h"
#include "renge\renge.h"
#include "loader.h"

View File

@ -26,6 +26,8 @@
#include "jhl_defs.h"
#include "user_define.h"
#include "hal.h"
#include "bsr_system.h"
#include "renge\renge.h"

View File

@ -57,11 +57,11 @@ u8 fade_to( u8 now, u8 goal )
{
if( now > goal )
{
now -= 1;
now --;
}
else
{
now += 1;
now ++;
}
}
return( now );
@ -204,11 +204,11 @@ void tsk_led_wifi( )
default:
LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
}
state_wifi_tx++;
state_wifi_tx ++;
if( state_wifi_tx == 32 ) // ←点滅後、点灯している期間の長さ
{
state_wifi_tx = 0;
flag_wifi_TX -= 1;
flag_wifi_TX --;
}
task_interval = 25;
return;
@ -231,11 +231,11 @@ void tsk_led_wifi( )
}
else if( LED_duty_WiFi < vreg_ctr[VREG_C_LED_BRIGHT] )
{
LED_duty_WiFi += 1;
LED_duty_WiFi ++;
}
else
{
LED_duty_WiFi -= 1;
LED_duty_WiFi --;
}
}
task_interval = 3;
@ -320,7 +320,7 @@ void tsk_led_notify( )
vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP;
if( info_LED.info_LED.last_loop != 255 ) // 255:無限ループ
{
loops++;
loops ++;
if( loops > info_LED.info_LED.last_loop )
{
frame = 0;
@ -340,7 +340,7 @@ void tsk_led_notify( )
calc_info_led_next_frame( &LED_dim_status_info_B, info_LED.info_LED.blu[frame] );
}
time_to_next_frame -= 1;
time_to_next_frame --;
}
}

View File

@ -31,11 +31,7 @@
#define LED_BRIGHT_MAX 0x00FF
// ====================================
#ifdef _MCU_BSR_ // 電波送信パルス
#define WIFI_txLatch PIF21
#else
#define WIFI_txLatch PIF7
#endif
#define WIFI_txLatch PIF21 // 電波送信パルス

View File

@ -35,7 +35,7 @@ void tsk_led_cam( )
{
if( task_interval != 0 )
{
task_interval -= 1;
task_interval --;
return;
}
}
@ -132,7 +132,7 @@ void cam_led_twl()
LED_CAM = 0;
state_led_cam = 0;
}
task_interval = 600 / SYS_INTERVAL_TICK + 250;
task_interval = (u8)( 600 / SYS_INTERVAL_TICK ) + 250;
break;
case( TWL_CAMLED_ON ):

View File

@ -130,7 +130,7 @@ void tsk_led_pow( )
{
LED_duty_notify_blu = 0;
LED_duty_notify_grn = 0;
LED_duty_notify_red = LED_pow_red ? 255: 0;
LED_duty_notify_red = ( LED_pow_red == 0 )? 0 : 255;
}
}
@ -179,12 +179,12 @@ static void led_pow_sleep( )
led_fade_to2( LED_duty_pow_blu, &LED_dim_status_sleep );
// 次のフレームに進める?
time_to_next_frame_sleep -= 1;
time_to_next_frame_sleep --;
if( time_to_next_frame_sleep == 0 )
{
time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN;
frame_sleep += 1;
frame_sleep ++;
if( frame_sleep >= LED_SLEEP_FRAME_NUM -1 )
{
frame_sleep = 0;
@ -244,7 +244,7 @@ static void led_pow_bt_empty()
led_fade_to( LED_duty_pow_blu, 0 );
// 赤の点滅パターンも指定できる
delay += 1;
delay ++;
if( delay < 64 ) // フレームの保持時間稼ぎ
{
return;
@ -259,7 +259,7 @@ static void led_pow_bt_empty()
{
LED_pow_red = 0;
}
red_blink_poi += 1;
red_blink_poi ++;
if( red_blink_poi >= 32 )
{
red_blink_poi = 0;

View File

@ -109,7 +109,7 @@ void main( )
// 通常の電源投入
// 電池接続時、ちょっと待ってみる(チャタリング対策)
u16 pwup_delay0;
for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0-- ){;};
for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0 -- ){;};
}
hdwinit2( );
@ -144,7 +144,7 @@ void chk_firm_broke()
if( *( u8 * )( MGC_FOOT +2 ) != ':' ) // 消去済のまま
{
comp += 1;
comp ++;
}
if( comp != 0 )
@ -376,7 +376,7 @@ void wait_ms( u8 ms ){
ms--;
fine = 860;
while( fine != 0 ){
fine -= 1;
fine --;
}
}
}

View File

@ -39,7 +39,6 @@ typedef struct{
// ========================================================
static void hosu_increment_if_necessary();
static u16 get_long_hour();
static u16 calc_hours_spend( u8 );
@ -115,7 +114,7 @@ void pedometer()
norm_hist[ hist_indx & TAP-1 ] = normh * 256 + norml;
#endif
hist_indx += 1;
hist_indx ++;
// ヒストリにフィルタ(fir)を掛けて、今回の値を求める //
filterd = 0;
@ -130,7 +129,7 @@ void pedometer()
/*
if( acc_norm[0] < acc_norm_temp )
{
t_rise += 1;
t_rise ++;
if( t_rise == 0 )
t_rise == 254;
}
@ -175,7 +174,10 @@ void pedometer()
}
else
{
interval_hh += ( interval_hh != 255 ) ? 1: 0; // 飽和加算って楽に書けたらいいのに
if( interval_hh != 255 ) // 飽和加算って楽に書けたらいいのに
{
interval_hh ++;
}
}
// (2) 直近の極小からの時間
@ -188,12 +190,14 @@ void pedometer()
}
else
{
time_l += ( time_l != 255 ) ? 1: 0;
if( time_l != 255 )
{
time_l ++;
}
}
}
/*=========================================================
 
  
@ -206,7 +210,7 @@ void pedometer()
#define HOSU_NODATA 0xFFFF
#define HOSU_MAX 0xFFFE
static void hosu_increment_if_necessary()
void hosu_increment_if_necessary()
{
u8 year_compd; // hour境界補正済み現在年。comp(ensation -ed)
@ -238,8 +242,12 @@ static void hosu_increment_if_necessary()
// 補正計算 元旦零時台で昨日扱いになった場合、大晦日の23時台に上書き
if( now_longhour == (u16)-1 ) // マジックナンバーとかではなくて実際に計算結果が-1
{
now_longhour = ( ( 365 + ( is_firstyear(year_compd) ? 1: 0 )) * 24 ) -1;
year_compd -= 1;
now_longhour = 365 * 24 -1;
if( is_firstyear(year_compd) )
{
now_longhour += 24;
}
year_compd --;
}
fill_hosu_hist_hours( calc_hours_spend( year_compd ) ); // ■書き込みポインタの更新も行う
@ -269,7 +277,7 @@ static void hosu_increment_if_necessary()
else
{
// 通常パス
pool.vreg_c_ext.pedo_log[ p_record ] += 1;
pool.vreg_c_ext.pedo_log[ p_record ] ++;
}
// 累積の更新 //
@ -305,7 +313,7 @@ static void fill_hosu_hist_hours( u16 hours )
while( hours != 0 )
{
// 新仕様 いっぱいで停止
p_record += 1;
p_record ++;
#if 1 // debug
if( p_record >= PEDOMETER_LOG_SIZE )
{
@ -318,7 +326,7 @@ static void fill_hosu_hist_hours( u16 hours )
{
pool.vreg_c_ext.pedo_log[ p_record ] = 0;
}
hours -= 1;
hours --;
}
return;
@ -335,7 +343,7 @@ void clear_hosu_hist()
u8 hours = PEDOMETER_LOG_SIZE;
do
{
hours -= 1;
hours --;
pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF;
}
while( hours != 0 );
@ -383,7 +391,7 @@ u8 hosu_read( )
if( iic_burst_state <= 5 )
{
rv = *( (u8*)&cal_buff + iic_burst_state ); // あうあう
iic_burst_state += 1;
iic_burst_state ++;
return( rv );
}
else
@ -404,7 +412,7 @@ u8 hosu_read( )
}
else
{
p_record_buffer -= 1;
p_record_buffer --;
}
}
pedolog_read_msb ^= 1;
@ -450,7 +458,7 @@ static u16 get_long_hour()
if( is_leapyear(year) && ( 3 <= month ))
{
// 閏年で、閏日より後
long_hour += 1;
long_hour ++;
}
long_hour += day - 1;
long_hour *= 24; // 日数→時間
@ -531,7 +539,12 @@ static u16 calc_hours_spend( u8 year )
else if( cal_log_latest_year == ( year -1 ) )
{
// 年をまたいでいるとき
return( ( ( 365 + ( is_firstyear(year) ? 1: 0 )) * 24 ) - last_hour_fny + now_longhour );
u16 temp = 365 - last_hour_fny + now_longhour;
if( is_firstyear(year) )
{
temp += 24;
}
return( temp );
}
else if( cal_log_latest_year < year )
{

View File

@ -14,6 +14,7 @@ extern bit pedolog_read_msb;
#define hosu_read_end() pedolog_read_msb = 0
u8 hosu_read( );
void hosu_increment_if_necessary();
void fill_hosu_hist_hours( u16 );
void clear_hosu_hist();
void pedometer();

View File

@ -33,7 +33,6 @@ u8 chg_led_override; //
static u16 bt_volt16;
static bit ntr_pm_bt_low_old;
bit BT_CHG_STAT_Change;
bit BT_IN_CHG_delayed_n;
bit temp_zone_charge_disable; // 温度で充電停止する時にヒステリシスを付けるため
@ -46,6 +45,11 @@ static bt_param_* p_bt_param;
static err send_cmd_mgic_2B( u8 reg, u16 dat );
static err read_mgic_2B( u8 reg, u8* dat );
static err read_BT_SOC( u8* dest );
static err read_BT_voltage( u8* dest );
static u8 conv_ctr_bt_to_twl_bt();
u8 pm_reg_bit_vddlcd;
@ -97,7 +101,7 @@ void tsk_batt( )
if( system_status.pwr_state != OFF_TRIG )
{
if( task_interval-- != 0 )
if( task_interval -- != 0 )
{
return;
}
@ -123,11 +127,18 @@ void tsk_batt( )
bt_get_charge_status(); // CCIC制御
LED_CHARGE = ( ! BT_IN_CHG_delayed_n )? 1: 0; // LEDに反映
if( ! BT_IN_CHG_delayed_n ) // LEDに反映
{
LED_CHARGE = 1;
}
else
{
LED_CHARGE = 0;
}
// アダプタつないだ瞬間、満充電でも数秒わざと点灯させる。給電してることをわからせるため。
if( chg_led_override != 0 ){ // ↑から見ればわかるが、瞬間(数クロック)消える事がある。気がつく人いるかな…?
chg_led_override -= 1;
chg_led_override --;
LED_CHARGE = 1;
}
@ -233,14 +244,12 @@ void bt_get_charge_status()
***********************************************************/
void pm_chk_adapter()
{
static u8 pm_extdc_old;
u8 temp_pm_extdc;
static bit pm_extdc_old;
temp_pm_extdc = (u8)!PM_EXTDC_n; // volatileのため
if( pm_extdc_old != temp_pm_extdc )
if( pm_extdc_old != PM_EXTDC_n ) // HAL を通すため、 PM_EXTDC_n の volatile にする心配なし
{
pm_extdc_old = temp_pm_extdc;
if( temp_pm_extdc )
pm_extdc_old = PM_EXTDC_n;
if( PM_EXTDC_n )
{
// 刺さった
set_bit( 1, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
@ -376,7 +385,7 @@ void BT_model_detect()
else
{
PM_SW_HOME_n_TSBOARD = 0;
SW_HOME_n_TSBOARD = 0; /// どっちでもいいんだけど
SW_HOME_n_TSBOARD_RAW = 0; /// 実機open どっちでもいいんだけど
}
// 電池メーカーの識別 //
@ -473,7 +482,7 @@ static void BT_mgic_init()
u8 loop;
// 16バイトごとに区切れとのこと イズ対策とか言うんだけど、意味あるんか
for( loop = 0; loop < 4; loop++ )
for( loop = 0; loop < 4; loop ++ )
{
iic_mcu_set_wo_dma( );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM + loop*16, 16, p_bt_param->mg_param + loop*16 );
@ -533,7 +542,7 @@ task_status_immed tski_BT_temp_update( )
{
if( heikinka < 40 )
{
heikinka++;
heikinka ++;
}
else
{
@ -587,151 +596,140 @@ task_status_immed tski_BT_temp_update( )
 BT_chk()
**********************************************************/
void BT_get_left(){
u8 temp_fuel[2];
u8 temp[2];
static u16 hysteresis;
u8 reg_volatile_temp_bt_remain,reg_volatile_temp_bt_remain_fine; // I2Cの非同期読み込みでのちらつき防止 キャップ処理の所為
#ifdef _DEBUG_BT_FUEL_
if( vreg_ctr[ VREG_C_COMMAND3 ] == 'd' )
if( system_status.model == MODEL_TS_BOARD
|| system_status.model == MODEL_SHIROBAKO )
{
vreg_ctr[ VREG_C_BT_REMAIN ] = vreg_ctr[ VREG_C_DBG01 ];
}
else
#endif
{
if( system_status.model == MODEL_TS_BOARD )
// TS & 白箱 //
// 電池残量
if( read_BT_SOC( temp ) == ERR_SUCCESS )
{
// TS //
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
vreg_ctr[ VREG_C_BT_VOLTAGE ] = 200;
}
else if( system_status.model == MODEL_SHIROBAKO )
{
// 白箱 //
// 電池残量
if( read_mgic_2B( BT_GAUGE_REG_SOC, temp_fuel ) != ERR_SUCCESS )
{
// エミュレーション機能がおかしい
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
}
else
{
vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1];
}
//*
// 電池電圧
if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_fuel ) == ERR_SUCCESS )
{
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp_fuel[0];
}
else
//*/
{
vreg_ctr[ VREG_C_BT_VOLTAGE ] = 200;
}
reg_volatile_temp_bt_remain = temp[0];
reg_volatile_temp_bt_remain_fine = temp[1];
}
else
{
// 実機 //
u8 temp_v[2];
u8 temp_force_fuel_left;
// 残量リード
if( read_mgic_2B( BT_GAUGE_REG_SOC, temp_fuel ) != ERR_SUCCESS )
{
// 残量ICがNACK …バッテリはずれた
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR;
bt_authorized = false;
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
force_off = true;
}
else
{
// バッテリパラメータの関係でビットシフトが必要
bt_volt16 = temp_fuel[0] * 256 + temp_fuel[1];
bt_volt16 /= p_bt_param->v_scale;
temp_fuel[0] = (u8)(( bt_volt16 >> 8 ) & 0xFF);
if( temp_fuel[0] == 0 )
{
// 0%台の時は1.00%に上げ底
// 充電開始後もしばらくは電池残量が減るので
// 0%に到達してしまうことがあるのだ
temp_fuel[0] = 1;
temp_fuel[1] = 0;
}
else
{
temp_fuel[1] = (u8)(bt_volt16 & 0xFF);
}
// 電圧でキャップ
if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS )
{
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp_v[0];
bt_volt16 = ( temp_v[0] * 256 + temp_v[1] );
if( bt_volt16 > V_TH_30 )
{
temp_force_fuel_left = 100;
hysteresis = 0;
}
else if( bt_volt16 - hysteresis > V_TH_LO )
{
temp_force_fuel_left = 30;
hysteresis = 0;
}
else if( bt_volt16 > V_TH_EMPTY )
{
temp_force_fuel_left = BATT_TH_LO; // ここから赤
hysteresis = 500;
}
else if( bt_volt16 > V_TH_ZERO )
{
temp_force_fuel_left = BATT_TH_EMPTY;
hysteresis = 500;
}
else if( bt_volt16 > V_TH_FORCE_OFF )
{
temp_force_fuel_left = 0;
hysteresis = 500;
}
else
{
force_off = true;
hysteresis = 500;
}
}
}
// 充電許可(=アダプタも刺さってる)のに充電してない
// かつ、少なくとも素の電池残量が60%以上CCICバグ回避
// = 充電完了。電池がへたってくるとMGICが100%を返さない
if( !BT_CHG_Ena_n && BT_IN_CHG_delayed_n ){
vreg_ctr[ VREG_C_BT_REMAIN ] = 100;
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0;
}
else
{ // 少ない方にキャップ
if( temp_force_fuel_left > temp_fuel[0] )
{
vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1];
}
else
{
vreg_ctr[ VREG_C_BT_REMAIN ] = temp_force_fuel_left;
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0;
}
}
reg_volatile_temp_bt_remain = 99;
reg_volatile_temp_bt_remain_fine = 0;
}
if( system_status.taikendai_nbd )
// 電池電圧
if( read_BT_voltage( temp ) == ERR_SUCCESS )
{
vreg_ctr[ VREG_C_BT_REMAIN ] = 100;
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0];
}
else
{
vreg_ctr[ VREG_C_BT_VOLTAGE ] = 200;
}
}
else
{
// 実機 //
u8 temp_v[2];
u8 temp_force_fuel_left;
// 残量リード
if( read_BT_SOC( temp ) != ERR_SUCCESS )
{
// 残量ICがNACK …バッテリはずれた
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR;
bt_authorized = false;
reg_volatile_temp_bt_remain = 0;
force_off = true;
}
else
{
// バッテリパラメータの関係でビットシフトが必要
bt_volt16 = temp[0] * 256 + temp[1];
bt_volt16 /= p_bt_param->v_scale;
temp[0] = (u8)(( bt_volt16 >> 8 ) & 0xFF);
if( temp[0] == 0 )
{
// 0%台の時は1.00%に上げ底
// 充電開始後もしばらくは電池残量が減るので
// 0%に到達してしまうことがあるのだ
temp[0] = 1;
temp[1] = 0;
}
else
{
temp[1] = (u8)(bt_volt16 & 0xFF);
}
// 電圧でキャップ
if( read_BT_voltage( temp_v ) == ERR_SUCCESS )
{
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp_v[0];
bt_volt16 = ( temp_v[0] * 256 + temp_v[1] );
if( bt_volt16 > V_TH_30 )
{
temp_force_fuel_left = 100;
hysteresis = 0;
}
else if( bt_volt16 - hysteresis > V_TH_LO )
{
temp_force_fuel_left = 30;
hysteresis = 0;
}
else if( bt_volt16 > V_TH_EMPTY )
{
temp_force_fuel_left = BATT_TH_LO; // ここから赤
hysteresis = 500;
}
else if( bt_volt16 > V_TH_ZERO )
{
temp_force_fuel_left = BATT_TH_EMPTY;
hysteresis = 500;
}
else if( bt_volt16 > V_TH_FORCE_OFF )
{
temp_force_fuel_left = 0;
hysteresis = 500;
}
else
{
force_off = true;
hysteresis = 500;
}
}
}
// 充電許可(=アダプタも刺さってる)のに充電してない
// かつ、少なくとも素の電池残量が60%以上CCICバグ回避
// = 充電完了。電池がへたってくるとMGICが100%を返さない
if( !BT_CHG_Ena_n && BT_IN_CHG_delayed_n ){
reg_volatile_temp_bt_remain = 100;
reg_volatile_temp_bt_remain_fine = 0;
}
else
{ // 少ない方にキャップ
if( temp_force_fuel_left > temp[0] )
{
reg_volatile_temp_bt_remain = temp[0];
reg_volatile_temp_bt_remain_fine = temp[1];
}
else
{
reg_volatile_temp_bt_remain = temp_force_fuel_left;
reg_volatile_temp_bt_remain_fine = 0;
}
}
}
if( system_status.taikendai_nbd ) // 電池端子に電源がつながってて値が不正なため上書き。
{
reg_volatile_temp_bt_remain = 100;
}
vreg_ctr[ VREG_C_BT_REMAIN ] = reg_volatile_temp_bt_remain;
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] =reg_volatile_temp_bt_remain_fine;
// twlのレジスタ更新 (CTRに割り込み入れる前に更新しないと割り込みのタイミングがまずいかもしれない)
bt_batt_update_twl();
@ -740,7 +738,7 @@ void BT_get_left(){
{
static u8 bt_remain_old_ctr;
if( bt_remain_old_ctr != vreg_ctr[ VREG_C_BT_REMAIN ] )
if( bt_remain_old_ctr != reg_volatile_temp_bt_remain )
// CTRに通知
{
if( (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) && ( BATT_TH_LO < bt_remain_old_ctr ))||
@ -1210,7 +1208,8 @@ void codec_reg_init()
{
wait_ms( 100 );
ntr_pm_bt_low_old = ( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH; // 1で電池切れ
ntr_pm_bt_low_old = conv_ctr_bt_to_twl_bt();
iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)ntr_pm_bt_low_old ); // SoC から書けず
vol_reset();
@ -1322,7 +1321,7 @@ static void bt_batt_update_ntr()
else
{
flag = (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH ); // 1で電池切れ
flag = conv_ctr_bt_to_twl_bt();
if(( ntr_pm_bt_low_old != flag ) || !initialized )
{
@ -1332,3 +1331,54 @@ static void bt_batt_update_ntr()
}
}
}
/* ========================================================
========================================================= */
static err read_BT_SOC( u8* dest )
{
if( vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] != 0xFF )
{
*dest = vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ];
*(dest+1) = 0x00;
return ERR_SUCCESS;
}
else
{
return( read_mgic_2B( BT_GAUGE_REG_SOC, dest ) );
}
}
/* ========================================================
========================================================= */
static err read_BT_voltage( u8* dest )
{
if( vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] != 0xFF )
{
*dest = vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ];
// *(dest+1) = 0x00; // 使わないよ けど2バイトリード関数しか用意してないのです
return ERR_SUCCESS;
}
else
{
return( read_mgic_2B( BT_GAUGE_REG_VCELL, dest ) );
}
}
/* ========================================================
twlにフラグにして返す
========================================================= */
static u8 conv_ctr_bt_to_twl_bt()
{
// ntr_pm_bt_low_old = ( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH; // 1で電池切れ
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )
{
return NTR_PM_BT_EMPTY;
}
else
{
return NTR_PM_BT_ENOUGH;
}
}

View File

@ -105,11 +105,11 @@ err renge_task_interval_run(){
renge_task_interval_run_force = false; // 今から起動するタスク、割り込むタスクでフラグが立つかもなので
if( renge_flg_interval != 0 )
{
renge_flg_interval -= 1;
renge_flg_interval --;
WDT_Restart( );
}
EI();
for( i = 0; i != TSK_LAST; i += 1 )
for( i = 0; i != TSK_LAST; i ++ )
{
tasks[ i ]();
// 逐次起動タスクがあったら間に挟む
@ -157,7 +157,7 @@ err renge_task_immed_add( task_status_immed (*new_task)() ){
// リストの空きの先頭に登録
// 削除したばかりのタスクは、削除マーク(TSK_IMM_DELETED_)となり、空きとは明示的に区別される
// 重複登録を避ける
for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i += 1 )
for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i ++ )
{
DI();
if( tasks_immed[ i ] == TSK_IMM_EMPTY_ )
@ -196,7 +196,7 @@ err renge_task_immed_run(){
if( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ )
{
DI();
for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id += 1 ){
for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id ++ ){
if( tasks_immed[ list_id ] == TSK_IMM_EMPTY_ ){
// リスト完了
EI();
@ -257,7 +257,7 @@ err renge_task_immed_run(){
if( tasks_immed[ j ] == TSK_IMM_EMPTY_ )
{
do{
j -= 1;
j --;
DI();
tasks_immed[ j ] = TSK_IMM_EMPTY_;
// リスト前詰め完了
@ -270,7 +270,7 @@ err renge_task_immed_run(){
// 前詰めすべきタスクを見つけた
tasks_immed[ i ] = tasks_immed[ j ];
tasks_immed[ j ] = TSK_IMM_DELETED_;
i += 1;
i ++;
EI();
}
}
@ -280,7 +280,7 @@ err renge_task_immed_run(){
{
// このタスク、滞留
}
i += 1;
i ++;
}
}
}

View File

@ -168,5 +168,5 @@ void rtc_unlock( )
======================================================== */
__interrupt void int_rtc_int( )
{
renge_flg_interval += 1; // インクリメント/デクリメント命令を使うので DI()不要
renge_flg_interval ++; // インクリメント/デクリメント命令を使うので DI()不要
}

View File

@ -133,7 +133,7 @@ void firm_update( )
//(新ファームが書かれるところに残ってる、以前のファームのフッタを消したい)
for( target_block = INACTIVE_BOOTSECT_TOP;
target_block < ALTERNATE_FIRMTOP;
target_block += 1 )
target_block ++ )
{
FSL_Erase( target_block );
}
@ -144,7 +144,7 @@ void firm_update( )
// ●終わったら、スタートアップルーチンに飛ぶ
for( target_block = INACTIVE_BOOTSECT_TOP;
target_block < ALTERNATE_FIRMTOP;
target_block += 1 )
target_block ++ )
{
u8 my_spd;
@ -155,7 +155,7 @@ void firm_update( )
// 分割書き込み
for( split_write_count = 0;
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
split_write_count += 1 )
split_write_count ++ )
{
u8* p_buffer = &pool.self_update_work[0];
u16 buff_written_size = 0;
@ -171,8 +171,8 @@ void firm_update( )
IICAIF = 0;
*p_buffer = IICA;
WREL = 1;
p_buffer += 1;
buff_written_size += 1;
p_buffer ++;
buff_written_size ++;
}
while( ( buff_written_size != SELF_UPDATE_BUFF_SIZE )
&& !SPD );
@ -233,7 +233,7 @@ void firm_update( )
}
if( *( __far u8 * )( N_MGC_L +2 ) != ':' ) // 消去済のまま
{
comp += 1;
comp ++;
}
if( comp == 0 )
@ -282,7 +282,7 @@ void firm_restore( )
}
if( *( u8 * )( MGC_FOOT_BKUP ) == 0xFF )
{
comp += 1;
comp ++;
}
if( comp != 0 )
@ -318,7 +318,7 @@ void firm_restore( )
// 電源ボタンで電源off
static u8 sw_hold_count;
if( !SW_POW_n )
if( !SW_POW_n_RAW )
{
sw_hold_count++;
}
@ -472,7 +472,7 @@ static err firm_duplicate( u8 block_src,
// 書き込み先ブロックの数だけ繰り返す
for( target_block = block_dest;
target_block < ( block_dest + FIRM_SIZE );
target_block += 1 )
target_block ++ )
{
led_print(2);
WDT_Restart( );
@ -482,7 +482,7 @@ static err firm_duplicate( u8 block_src,
{
led_print(3);
FSL_Erase( target_block );
if( --retry_error == 0 )
if( -- retry_error == 0 )
{
// フラッシュ寿命?
FSL_Close( );
@ -494,7 +494,7 @@ static err firm_duplicate( u8 block_src,
// 分割書き込み分繰り返す
for( split_write_count = 0;
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
split_write_count += 1 )
split_write_count ++ )
{
u16 buff_written_size;
u8* p_buff;
@ -505,9 +505,9 @@ static err firm_duplicate( u8 block_src,
do
{
*p_buff = *p_src;
p_src += 1;
p_buff += 1;
buff_written_size +=1;
p_src ++;
p_buff ++;
buff_written_size ++;
}
while( buff_written_size != SELF_UPDATE_BUFF_SIZE );

View File

@ -68,7 +68,7 @@
// INTP6
// PM
#define PM_EXTDC_n mcuRegP[ _P7_0 ]
#define PM_EXTDC_n_RAW mcuRegP[ _P7_0 ]
// INTP7
//#define BT_TEMP mcuRegP[ _P15_0 ]
// ANI8
@ -89,25 +89,25 @@
#define BT_CHG_Ena_n ( mcuRegP[ _P4_3 ] )
// <20>[“d†(in)
#define BT_IN_CHG_n mcuRegP[ _P5_1 ]
#define BT_IN_CHG_n_RAW mcuRegP[ _P5_1 ]
#define PU_BT_IN_CHG_n mcuRegPU[ _P5_1 ]
#define SW_WIFI_n mcuRegP[ _P7_4 ]
#define SW_WIFI_n_RAW mcuRegP[ _P7_4 ]
#define PM_SW_WIFI_n mcuRegPM[ _P7_4 ]
// KR4
#define SW_POW_n mcuRegP[ _P7_3 ]
#define SW_POW_n_RAW mcuRegP[ _P7_3 ]
// KR3
#define SW_SEL_n mcuRegP[ _P2_3 ]
#define PM_SW_SEL_n mcuRegPM[ _P2_3 ]
//#define VOL mcuRegP[ _P2_7 ]
// ANI7
#define SW_HOME_n_JIKKI mcuRegP[ _P20_4 ]
#define SW_HOME_n_JIKKI_RAW mcuRegP[ _P20_4 ]
#define PM_SW_HOME_n_JIKKI mcuRegPM[ _P20_4 ]
#define PU_SW_HOME_n_JIKKI mcuRegPU[ _P20_4 ]
// INTP22
#define SW_HOME_n_TSBOARD mcuRegP[ _P2_0 ]
#define SW_HOME_n_TSBOARD_RAW mcuRegP[ _P2_0 ]
#define PM_SW_HOME_n_TSBOARD mcuRegPM[ _P2_0 ]
// WiFi
@ -158,7 +158,7 @@
#define DIPSW_TAIKENDAI_NBD 1
#define SHELL_OPEN mcuRegP[ _P7_1 ] // INTP5 ふた開閉 (閉じるとL)
#define SHELL_OPEN_RAW mcuRegP[ _P7_1 ] // INTP5 ふた開閉 (閉じるとL)
//#define DBG_VR mcuRegP[ _P2_6 ]
// ANI6

View File

@ -36,8 +36,6 @@ bit SW_pow_mask;
u8 SW_home_count, SW_wifi_count, SW_home_count_rel;
u8 sw_wifi_mukan_time;
bit SW_HOME_n;
u16 off_timeout_timer;
u16 sw_pwsw_mukan_time;
@ -54,7 +52,7 @@ u16 sw_pwsw_mukan_time;
if( mask != 0 ){ \
counter = 0; \
}else{ \
counter += 1; \
counter ++; \
if( counter == 0 ) counter = -1; \
} \
} \
@ -64,14 +62,14 @@ u16 sw_pwsw_mukan_time;
#define chk_clicked( button, count, irq_bit_name ) \
if( !button ) \
{ \
if( count <= CLICK_THRESHOLD ) \
if( count < CLICK_THRESHOLD ) \
{ \
count += 1; \
} \
if( count == CLICK_THRESHOLD ) \
{ \
count += 1; \
set_irq( VREG_C_IRQ0, irq_bit_name ); \
count ++; \
if( count == CLICK_THRESHOLD ) \
{ \
count ++; \
set_irq( VREG_C_IRQ0, irq_bit_name ); \
} \
} \
} \
else \
@ -94,7 +92,7 @@ void tsk_sw( )
SW_pow_count = 0; // カウントクリア
}
if( --task_interval != 0 )
if( -- task_interval != 0 )
{
return;
}
@ -131,7 +129,7 @@ void tsk_sw( )
if( off_timeout_timer != 0 ) // 長押し割り込み後、タイムアウトで強制オフ。
{
off_timeout_timer -= 1;
off_timeout_timer --;
if( off_timeout_timer == 1 )
{
force_off = true;
@ -163,19 +161,6 @@ void tsk_sw( )
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント
// HOME スイッチ //
switch( system_status.model )
{
case( MODEL_JIKKI ):
case( MODEL_SHIROBAKO ):
SW_HOME_n = SW_HOME_n_JIKKI; // 接続先のポートが違うため
break;
case( MODEL_TS_BOARD ):
SW_HOME_n = SW_HOME_n_TSBOARD;
break;
default:
SW_HOME_n = 1; // 放されてる状態
}
chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK );
chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE );

View File

@ -43,7 +43,7 @@ void tsk_debug( )
static u8 count = 0;
// デバッグLED8bitの初期化
temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO );
count += 1;
count ++;
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count );
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count );
}

View File

@ -157,7 +157,7 @@ void update_LED_3D()
{
if( LED_duty_3d != 0 )
{
LED_duty_3d -= 1;
LED_duty_3d --;
}
}
else
@ -166,12 +166,12 @@ void update_LED_3D()
{
if( LED_duty_3d < vreg_ctr[VREG_C_LED_BRIGHT] )
{
LED_duty_3d += 1;
}
else
{
LED_duty_3d -= 1;
}
LED_duty_3d ++;
}
else
{
LED_duty_3d --;
}
}
}
}
@ -276,7 +276,7 @@ extern bit bt_authorized;
10) system_status.family
======================================================== */
#define KOUMOKU 9
#define KOUMOKU 18
u8 extinfo_read()
{
u8 infos[ KOUMOKU +1 ];
@ -299,22 +299,42 @@ u8 extinfo_read()
infos[7] = ( !temp_zone_charge_disable | ( bt_authorized << 1 ) );
infos[8] = 1; // system_status.info_fullcolor;
infos[9] = system_status.family;
infos[10] = LED_pow_red;
infos[11] = LED_duty_pow_blu;
infos[12] = LED_duty_3d;
infos[13] = LED_duty_notify_red;
infos[14] = LED_duty_notify_grn;
infos[15] = LED_duty_notify_blu;
infos[16] = LED_CAM;
infos[17] = LED_duty_WiFi;
infos[18] =
// ( PM_EXTDC_n ? REG_BIT_HAL0_PM_EXTDC_n : 0 ) // status0にある
0
| ( BT_IN_CHG_n ? REG_BIT_HAL0_BT_IN_CHG_n : 0 )
// | ( SHELL_OPEN ? REG_BIT_HAL0_SHELL_OPEN : 0 ) // status0にある
| ( BT_CHG_Ena_n ? REG_BIT_HAL0_RSV_5 : 0 ) // 空きビット使用,out pin
| 0
| ( SW_WIFI_n ? REG_BIT_HAL0_SW_WIFI_n : 0 )
| ( SW_HOME_n ? REG_BIT_HAL0_SW_HOME_n : 0 )
| ( SW_POW_n ? REG_BIT_HAL0_SW_POW_n : 0 );
// 項目足すときは気をつけてね!! //
iic_burst_state++;
iic_burst_state ++;
return( infos[ iic_burst_state -1 ] );
}
#ifdef i2c_timeout_test
void i2c_mcu_error_monitor()
{
LED_duty_pow_blu = 0xff;
LED_duty_3d = 0xff;
LED_duty_notify_red = 0xff;
LED_duty_notify_grn = 0xff;
LED_duty_notify_blu = 0xff;
LED_pow_red = 1;
LED_CAM = 1;
}
{
LED_duty_pow_blu = 0xff;
LED_duty_3d = 0xff;
LED_duty_notify_red = 0xff;
LED_duty_notify_grn = 0xff;
LED_duty_notify_blu = 0xff;
LED_pow_red = 1;
LED_CAM = 1;
}
#endif

View File

@ -9,41 +9,29 @@
#include "incs_loader.h"
#include "renge\renge.h"
#include "hal.h"
#include "pm.h"
#include "accero.h"
#include "adc.h"
#include "i2c_mcu.h"
#include "led.h"
// ========================================================
#define INTERVAL_TSK_STATUS 4
extern bit BT_CHG_STAT_Change;
/* ========================================================
======================================================== */
void tsk_status( )
{
// static u8 interval_task_status = 0;
static u8 state_old; // ステータス変化検出→割り込み の為
u8 diff;
/*
if( interval_task_status != 0 )
{
interval_task_status -= 1;
return;
}
else
{
interval_task_status = (u8)( INTERVAL_TSK_STATUS / SYS_INTERVAL_TICK );
}
*/
// 蓋開けチェック
// 蓋開けチェック
set_bit( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN );
// ステータスレジスタ関係 → 割り込み //
@ -61,8 +49,6 @@ void tsk_status( )
{
if( diff & REG_BIT_BATT_CHARGE )
{
BT_CHG_STAT_Change = true;
// 充電状態に以下略
if( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE )
{

View File

@ -33,7 +33,6 @@ static void force_off_check();
static void send_getup_to_soc();
//=========================================================
extern bit info_led_off;
extern bit going_to_sleep;
@ -46,6 +45,10 @@ extern u8 chg_led_override;
extern bit i2c_mcu_time_out_error;
#endif
//=========================================================
#define PWSW_POWON_TIME (u8)( 20 / SYS_INTERVAL_TICK )
/* ========================================================
@ -54,9 +57,11 @@ extern bit i2c_mcu_time_out_error;
======================================================== */
void tsk_sys( )
{
static u8 timeout = 0;
static u8 pwsw_timeout = 0; // 電源ボタンチャタリング回避。 タイムアウトするまでに電源投入確定しないとoffに戻る
switch ( system_status.pwr_state )
hal_update();
switch ( system_status.pwr_state )
{
case ON_CHECK: //-------------------------------------------------------
// スイッチ操作などで割り込みが発生し、スリープが解除されるとここに来ます。
@ -66,21 +71,21 @@ void tsk_sys( )
// スイッチで電源on
if( SW_pow_count != 0 )
{
timeout = 0;
pwsw_timeout = 0;
}
else
{
timeout += 1;
pwsw_timeout ++;
}
if( timeout > 100 )
if( pwsw_timeout > 100 )
{
system_status.pwr_state = OFF; // スイッチはノイズだった。寝る。
renge_task_interval_run_force = true;
return;
}
if( SW_pow_count < 10 )
if( SW_pow_count < PWSW_POWON_TIME )
{
// もう少しスイッチの様子を見る
return;
@ -91,14 +96,9 @@ void tsk_sys( )
SW_pow_mask = true;
timeout = 0;
// for debug
#ifdef _DEBUG_BT_FUEL_
vreg_ctr[ VREG_C_DBG01 ] = 99;
#endif
#ifdef _DEBUG_BT_TEMP_
vreg_ctr[ VREG_C_DBG01 ] = 0x80;
#endif
vreg_ctr[ VREG_C_COMMAND3 ] = 0;
@ -198,19 +198,14 @@ void tsk_sys( )
iic_mcu_start();
#ifdef _MCU_BSR_
// MK2 = ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ );
// PMK21 = 0; // wifi 使わない
PMK6 = 0; // pm_irq
#else
MK2L = ~INT_MSK2_WIFI_TX_KE3;
#endif
// todo 将来的には完全にレジスタ制御に
RBR_RESET_n = 1;
RBR_FLIGHT = 0;
// リブート時、ステータスを何となく更新
if( system_status.reboot )
{
@ -245,7 +240,7 @@ void tsk_sys( )
// SLP監視
if( going_to_sleep ) // 絶対に SLP_REQ の前に予告が来る
{
timeout_sleep += 1;
timeout_sleep ++;
if( timeout_sleep == 0 || // オーバーフローを期待。sleepするって言ったけど一瞬で起きて気がつかなかった
( PIF0 && !SLP_REQ )) // slp割り込みが入った気がしたが、もう起きてしまった
{
@ -348,7 +343,7 @@ void tsk_sys( )
// PU5 そのまま
PU7 = bits8(0,0,0,0, 1,0,0,1); // PWSWI,PM_EXTTDC,( IRQ0_deactive(), PM_IRQ_deactive )
PU_SW_HOME_n_JIKKI = 0; // SW_HOME 停止
PU_SW_HOME_n_JIKKI = 0; // SW_HOME 停止
IF0 = 0;
IF1 = 0;
@ -359,10 +354,10 @@ void tsk_sys( )
PM_sys_pow_off( );
// ポート類を停止モードに。こういう回路でも、L出力にしなきゃだめだそうな。
SW_WIFI_n = 0;
SW_WIFI_n_RAW = 0;
PM_SW_WIFI_n = 0;
SW_HOME_n_JIKKI = 0;
SW_HOME_n_JIKKI_RAW = 0;
PM_SW_HOME_n_JIKKI = 0;
WL_TX = 0;
@ -382,21 +377,29 @@ void tsk_sys( )
SW_pow_mask = true;
SW_pow_count = 0;
// HALデバッグリセット
vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = 0;
vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0;
vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] = 0xFF;
vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] = 0xFF;
vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] = 0xFF;
/* FALLTHROUGH */
case OFF:
system_status.poweron_reason = NONE;
if( !PM_EXTDC_n )
pwsw_timeout = 0;
if( !PM_EXTDC_n )
{
// アダプタが刺さってるときはこのブロックを繰り返す。
BT_chk(); // 要ポーリング(電池抜かれ検出のため)
// ↑の中で必要だったらI2C_m_init呼んでます
// アダプタ有り:充電温度監視
if( SW_pow_count >= 10 ) // 電源スイッチが押されるのを待つ
if( SW_pow_count > PWSW_POWON_TIME ) // 電源スイッチが押されるのを待つ
{
// 電源投入
system_status.pwr_state = ON_CHECK;
system_status.pwr_state = ON_CHECK; // 直ちに押し時間チェックは合格して電源投入に入る
}
if( system_status.model != MODEL_JIKKI )
@ -406,6 +409,7 @@ void tsk_sys( )
if( system_status.taikendai )
{
vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0;
// 電源投入
wait_ms(46);
system_status.poweron_reason = PWSW;
@ -437,7 +441,20 @@ void tsk_sys( )
if( PM_EXTDC_n ) // きわどいタイミングで挿抜が起きることがある
{
STOP( );
/*
vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = 0;
vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0;
vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] = 0xFF;
vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] = 0xFF;
vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] = 0xFF;
*/
if( vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] != 0 ||
vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] == 0xFF )
{
NOP();
}
STOP( );
}
// 起きる //
@ -453,7 +470,6 @@ void tsk_sys( )
// 電源ボタンで起きたとき
SW_pow_mask = false;
system_status.pwr_state = ON_CHECK;
timeout = 0;
}
// else{
// アダプタで起きたときは OFF の中をぐるぐるまわる
@ -530,8 +546,8 @@ static void chk_emergencyExit(){
{
if( !RESET1_n )
{
if( shirobako_power_control_count != 255 )
shirobako_power_control_count += 1;
if( shirobako_power_control_count != 255 )
shirobako_power_control_count ++;
}
else
{

View File

@ -78,7 +78,7 @@
// INTP6
// PM
#define PM_EXTDC_n P7.0
#define PM_EXTDC_n_RAW P7.0
// INTP7
//#define BT_TEMP P15.0
// ANI8
@ -99,26 +99,26 @@
#define BT_CHG_Ena_n ( P4.3 )
// <20>[“d†(in)
#define BT_IN_CHG_n P5.1
#define BT_IN_CHG_n_RAW P5.1
#define PM_BT_IN_CHG_n PM5.1
#define PU_BT_IN_CHG_n PU5.1
#define SW_WIFI_n P7.4
#define SW_WIFI_n_RAW P7.4
#define PM_SW_WIFI_n PM7.4
// KR4
#define SW_POW_n P7.3
#define SW_POW_n_RAW P7.3
// KR3
#define SW_SEL_n P2.3
#define SW_SEL_n P2.3
#define PM_SW_SEL_n PM2.3
//#define VOL P2.7
// ANI7
#define SW_HOME_n_JIKKI P20.4
#define SW_HOME_n_JIKKI_RAW P20.4
#define PM_SW_HOME_n_JIKKI PM20.4
#define PU_SW_HOME_n_JIKKI PU20.4
// INTP22
#define SW_HOME_n_TSBOARD P2.0 // TSマザー上でpull up(P2は内蔵p.u.無い)
#define SW_HOME_n_TSBOARD_RAW P2.0 // TSマザー上でpull up(P2は内蔵p.u.無い)
#define PM_SW_HOME_n_TSBOARD PM2.0
// WiFi
@ -166,11 +166,11 @@
#define DIPSW_TAIKENDAI_NBD 0b01
#define SHELL_OPEN P7.1 // INTP5 ふた開閉 (閉じるとL)
#define SHELL_OPEN_RAW P7.1 // INTP5 ふた開閉 (閉じるとL)
#define ACC_VALID P20.5
#define ACC_VALID P20.5
#define PM_ACC_VALID PM20.5
#define ACCEL_INT1 P2.5
#define ACCEL_INT1 P2.5
#define PM_ACCEL_INT1 PM2.5

View File

@ -31,8 +31,7 @@ u8 vreg_ctr[VREG_C_ENDMARK_ + 16];
u8 vreg_ctr[VREG_C_ENDMARK_];
#endif
u8 vreg_free_adrs; // アドレス飛んでるのでしばらくはこれで
static u8 vreg_free_adrs; // アドレス飛んでるのでしばらくはこれで
bit irq_readed; // AAA型のため。
@ -156,19 +155,21 @@ void vreg_ctr_write( u8 adrs, u8 data )
case ( VREG_C_COMMAND1 ):
if( data != 0 )
{
// u8 temp; 中間変数使ったらばかでかくなった...
// TWLに割り込みを入れる
/// 実際に割り込みを入れるのはSoC
vreg_twl[REG_TWL_INT_ADRS_IRQ] = ( ( data & REG_BIT_SEND_TWL_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det
vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( data & REG_BIT_SEND_TWL_RESET_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req
/// ビットの並びが違うから面倒
vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = ( ( data & REG_BIT_SEND_TWL_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det
vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_RESET_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req
vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( data & REG_BIT_SEND_TWL_OFF_DET ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req
vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_OFF_DET ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req
vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( data & REG_BIT_SEND_TWL_BATT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low
vreg_twl[REG_TWL_INT_ADRS_IRQ] |= ( ( data & REG_BIT_SEND_TWL_BATT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty
vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low
vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty
if(( data & REG_BIT_SEND_TWL_VOL_CLICK ) != 0 )
{
vreg_twl[REG_TWL_INT_ADRS_IRQ] |= REG_BIT_TWL_IRQ_VOL_CHANGE; //vol_changed
vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= REG_BIT_TWL_IRQ_VOL_CHANGE; //vol_changed
}
}
break;
@ -177,12 +178,12 @@ void vreg_ctr_write( u8 adrs, u8 data )
if( iic_burst_state == 0 )
{
vreg_ctr[ VREG_C_LED_POW ] = data;
iic_burst_state += 1;
iic_burst_state ++;
}
else if( iic_burst_state < 5 )
{
led_red_batt_empty.dats[ iic_burst_state -1 ] = data;
iic_burst_state += 1;
iic_burst_state ++;
}
break;
@ -200,7 +201,7 @@ void vreg_ctr_write( u8 adrs, u8 data )
data = 1;
}
info_LED.bindata[ iic_burst_state ] = data;
iic_burst_state += 1;
iic_burst_state ++;
if( iic_burst_state > 4 ) // パターンを1文字でも書いた
{
info_led_pattern_updated = true;
@ -294,7 +295,7 @@ void vreg_ctr_write( u8 adrs, u8 data )
if( vreg_free_adrs < VREG_C_FREE_SIZE )
{
pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ] = data;
vreg_free_adrs += 1;
vreg_free_adrs ++;
}
break;
@ -322,13 +323,31 @@ void vreg_ctr_write( u8 adrs, u8 data )
// mcu_wdt_reset; // このコマンド使ったら意味ないでしょ!
break;
#endif
case( 'p' ):
hosu_increment_if_necessary(); // 今、一歩増えた
break;
}
vreg_ctr[ VREG_C_COMMAND3 ] = data;
// vreg_ctr[ VREG_C_COMMAND3 ] = data;
break;
case ( VREG_C_RBR_CONTROL ):
RBR_RESET_n = ( data & REG_BIT_RESET_n ) ? 1: 0;
RBR_FLIGHT = ( data & REG_BIT_FLIGHT ) ? 1: 0;
if(( data & REG_BIT_RESET_n ) != 0 )
{
RBR_RESET_n = 1;
}
else
{
RBR_RESET_n = 0;
}
if(( data & REG_BIT_FLIGHT ) != 0 )
{
RBR_FLIGHT = 1;
}
else
{
RBR_FLIGHT = 0;
}
vreg_ctr[ VREG_C_RBR_CONTROL ] = data;
break;
@ -356,7 +375,8 @@ void vreg_ctr_write( u8 adrs, u8 data )
NOP();
break;
default:
// 普通に書かれるだけ /////////////////////////////////
default:
/*
case ( VREG_C_IRQ_MASK0 ):
case ( VREG_C_IRQ_MASK1 ):
@ -374,6 +394,10 @@ 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 ):
VREG_C_HAL_OVW_CONT0 = 0x52,
VREG_C_HAL_OVW_DAT0,
VREG_C_HAL_OVW_CONT1,
VREG_C_HAL_OVW_DAT1,
*/
if( adrs < VREG_C_ENDMARK_ )
{
@ -436,7 +460,7 @@ u8 vreg_ctr_read( u8 adrs )
else if( adrs == VREG_CX_FREE_DATA )
{
temp = pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ];
// vreg_free_adrs += 1; // ここで加算してしまうとインデックスがずれる
// vreg_free_adrs ++; // ここで加算してしまうとインデックスがずれる
return( temp );
}
else if( adrs == VREG_CX_INFO )
@ -445,7 +469,14 @@ u8 vreg_ctr_read( u8 adrs )
}
else if( adrs == VREG_C_ACC_HOSU_SETTING )
{
return( pedolog_overflow? 0x10: 0 );
if( pedolog_overflow )
{
return( 0x10 );
}
else
{
return( 0 );
}
}
if( adrs >= VREG_C_ENDMARK_ )
@ -478,7 +509,7 @@ void vreg_ctr_after_read( u8 adrs, u8 data )
break;
case VREG_CX_FREE_DATA:
vreg_free_adrs += 1;
vreg_free_adrs ++;
break;
default:

View File

@ -27,7 +27,7 @@
// twl bl のミラー[1: ( 1 << 3 )
// 0]( 1 << 2 )
#define REG_BIT_ACCERO_ERR ( 1 << 1 )
#define REG_BIT_MGIC_ERR ( 1 << 0 )
#define REG_BIT_MGIC_ERR ( 1 << 0 )
// VREG_C_IRQ0
#define REG_BIT_IRQ_WDT_RESET ( 1 << 7 )
@ -113,10 +113,6 @@
#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10
#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40
// VOL option (0x26)
//#define REG_BIT_VOL_UPDATE_TO_SLIDER ( 1 << 4 )
//#define REG_BIT_VOL_BY_SPI ( 1 << 0 )
// FORCE_REGの方が弱い
// CODEC上のPMIC NTR の代理レジスタ
#define REG_BIT_TWL_REQ_OFF ( 1 << 6 )
@ -133,6 +129,24 @@
#define REG_BIT_RESET_n ( 1 << 0 )
// HAL bitfields 0
#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 )
#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 )
//#define REG_BIT_HAL0_PM_IRQ_n // 使わない
#define REG_BIT_HAL0_RSV_5 ( 1 << 5 )
#define REG_BIT_HAL0_WL_TX ( 1 << 4 )
#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) // statusにあります
#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 )
#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 )
#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 )
// HAL bitfields 1
#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 )
#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 )
#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 )
#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 )
/*
#define REG_BIT_ ( 1 << 7 )
@ -204,6 +218,8 @@ enum VREG_C_ADRS
VREG_C_LED_NOTIFY_DATA,
VREG_C_LED_NOTIFY_FLAG,
VREG_C_RBR_CONTROL = 0x2F,
VREG_C_RTC_SEC = 0x30,
VREG_C_RTC_MIN,
VREG_C_RTC_HOUR,
@ -245,14 +261,23 @@ enum VREG_C_ADRS
VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50,
VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC,
VREG_C_RBR_CONTROL = 0x57,
VREG_C_HAL_OVW_CONT0 = 0x52,
VREG_C_HAL_OVW_DAT0,
VREG_C_HAL_OVW_CONT1,
VREG_C_HAL_OVW_DAT1,
VREG_C_HAL_OVW_BT_FUEL = 0x56,
VREG_C_HAL_OVW_BT_VOLTAGE,
VREG_C_VOL_CAL_MIN = 0x58,
VREG_C_VOL_CAL_MAX,
VREG_C_ENDMARK_
VREG_C_HAL_OVW_TEMPERATURE = 0x5A,
VREG_C_ENDMARK_
};
// ↓間は抜けにして、メモリも確保しないために 別に define してる
#define VREG_CX_INFO 0x7F
#define VREG_CX_FREE_ADRS 0x60
#define VREG_CX_FREE_DATA 0x61

View File

@ -1,31 +1,13 @@
C:\Windows\system32\cmd.exe /c c:\cygwin\bin\touch magic.c
"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -qvjl2w -sainter_asm -zpb -w2 -no i2c_ctr.c
bsr_system.h(55) : CC78K0R warning W0851: Data aligned in 'struct tag'
i2c_ctr.c(77) : CC78K0R warning W0309: Unused 'reg_adrs_internal'
i2c_ctr.c(277) : CC78K0R warning W0851: Data aligned in '@@DATA section'
i2c_ctr.c(277) : CC78K0R warning W0851: Data aligned in '@@INIT section'
Compilation complete, 0 error(s) and 4 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff inter_asm\i2c_ctr.asm
Assembly complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -qvjl2w -sainter_asm -zpb -w2 -no magic.c
magic.c(16) : CC78K0R warning W0871: Data aligned after 'MGC_HEADdN' in 'MGC_MIMI section'
magic.c(24) : CC78K0R warning W0871: Data aligned after 'MGC_TAILd' in 'MGC_TAIL section'
magic.c(12) : CC78K0R warning W0871: Data aligned after 'MGC_LOADd' in 'MGC_LOAD section'
Compilation complete, 0 error(s) and 3 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2 -qvjl2w -sainter_asm -zpb -no magic.c
Compilation complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff inter_asm\magic.asm
Assembly complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -qvjl2w -sainter_asm -zpb -w2 -no i2c_mcu.c
bsr_system.h(55) : CC78K0R warning W0851: Data aligned in 'struct tag'
i2c_mcu.c(210) : CC78K0R warning W0401: Conversion may lose significant digits
i2c_mcu.c(655) : CC78K0R warning W0851: Data aligned in '@@DATA section'
Compilation complete, 0 error(s) and 3 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff inter_asm\i2c_mcu.asm
Assembly complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\lk78k0r.exe" -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -obsr.lmf "..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi1B339499E033F240BFAAh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\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 led_cam.rel led_pow.rel
"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\lk78k0r.exe" -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -obsr.lmf "..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi1B339499E033F240BFAAh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\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 led_cam.rel led_pow.rel hal.rel
Link complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\oc78k0r.exe" -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf
Object Conversion Complete, 0 error(s) and 0 warning(s) found.
C:\Windows\system32\cmd.exe /c ruby nec_s_2_bsrbin2.rb bsr.hex
133
!E debug enable!!
Build Total error(s) : 0 Total warning(s) : 10
Build Total error(s) : 0 Total warning(s) : 0

View File

@ -14,7 +14,7 @@ Low-voltage Flash Rewriting=On
Fail Safe Break=0x2000
Port=1
NMI=OFF
TRESET=OFF
TRESET=ON
IRESET=OFF
WAIT=OFF
SysClock=None
@ -22,7 +22,7 @@ SubClock=None
[Mapping]
Count=0
[Main]
Geometry=22, 22, 1200, 858
Geometry=1, 1, 878, 808
Window=Max
MDI_MAX=OFF
Button=ON
@ -58,7 +58,7 @@ Symbol Reset1=ON
Dir=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\
Filter=Source
[Debugger Option]
Source Path=""
Source Path="\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\renge"
Symbol Size=Byte
Symbol Format=Hex
Register Name=Func
@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=0, 0, 600, 400
Geometry=31, 32, 748, 852
Window=Normal
DispStart=60
CaretPos=81,0
DispStart=75
CaretPos=116,0
Mode=Normal
DispFile=
Address1=
@ -139,27 +139,11 @@ SaveRange=Screen
SaveStart=
SaveEnd=
Accumulative=ON
[Source1]
Geometry=717, 97, 600, 750
Window=Normal
DispStart=158
CaretPos=209,0
Mode=Normal
DispFile=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\i2c_ctr.c
Accumulative=ON
[Source2]
Geometry=0, 0, 600, 889
Window=Normal
DispStart=344
CaretPos=397,0
Mode=Normal
DispFile=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\vreg_ctr.c
Accumulative=ON
[Assemble]
Geometry=50, 50, 600, 400
Window=Normal
DispStart=684
CaretPos=684,27
Geometry=0, 0, 0, 0
Window=Hide
DispStart=847561728
CaretPos=0,0
Address1=
Address2=
Address3=
@ -195,8 +179,8 @@ Data16=
Case=ON
Scan=OFF
Direction=Down
FindStart=
FindEnd=
FindStart=0
FindEnd=0
SaveRange=Screen
SaveStart=
SaveEnd=
@ -293,7 +277,7 @@ Address16=
Boundary=0, 0
Mode=Hex
Attribute=Show
Sort=Address
Sort=Unsort
Pickup=OFF
SelectSort=Address
Last Name=
@ -885,19 +869,19 @@ SaveEnd=
Geometry=0, 0, 0, 0
Window=Hide
Mode=Hex
Boundary=0
Boundary=62
Pickup=OFF
Name=Functional
Register Bank=0
RP0=3
RP1=3
RP2=3
RP3=3
PC=3
SP=3
PSW=3
ES=3
CS=3
RP0=1
RP1=1
RP2=1
RP3=1
PC=1
SP=1
PSW=1
ES=1
CS=1
[Event Manager]
Geometry=0, 0, 0, 0
Window=Hide
@ -973,15 +957,18 @@ Detail=OFF
Last Name=
Count=0
[Variable]
Geometry=0, 0, 0, 0
Window=Hide
Boundary=0
Line=0
Geometry=1143, 3, 440, 1023
Window=Normal
Boundary=13762700
0=.system_status,.,N,A,+,1
1=.vreg_ctr,P,N,A,+,1
2=.temp,P,N,A,+,1
Line=3
[Quick Watch]
0=
1=
2=
3=
0=temp,P,A,1
1=system_status,P,A,1
2=vreg_ctr[],P,A,1
3=vreg_ctr,P,A,1
4=
5=
6=
@ -995,22 +982,10 @@ Line=0
14=
15=
[Software Break]
Geometry=0, 876, 500, 200
Window=Normal
Geometry=0, 0, 0, 0
Window=Hide
Width=150 30 200 100
Name0=Swb00001
Address0=vreg_ctr.c#_vreg_ctr_write+0x344
Window0=ASM
Status0=ON
Name1=Swb00002
Address1=vreg_ctr.c#_vreg_ctr_write+0x353
Window1=ASM
Status1=ON
Name2=Swb00003
Address2=i2c_ctr.c#_int_iic_ctr+0x133
Window2=ASM
Status2=ON
Count=3
Count=0
[Reset]
Debugger=ON
Symbol=OFF

View File

@ -112,32 +112,6 @@ ZF=0
S=1
E=0
CommandFile=0
[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
Source24=led_cam.c
Source25=led_pow.c
[BuildBefore-AfterCmd]
Before1=c:\cygwin\bin\touch magic.c
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
@ -257,6 +231,64 @@ Tool1=CC78K0R|W2.13
Tool2=RA78K0R|W1.33
Tool3=SK78K0R|V3.10
Tool4=ID78K0R-QB|V3.61
[Options.LCNV78K0R 0]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 1]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 2]
Version=100
LCNV_GO=0
O0=inter_asm
E=0
CommandFile=0
[Options.LCNV78K0R 3]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 4]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 5]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[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
Source24=led_cam.c
Source25=led_pow.c
Source26=hal.c
[IncFile]
Include1=incs_loader.h
Include2=jhl_defs.h
@ -295,6 +327,269 @@ Include34=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\in
Include35=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h
Include36=sim\simOnWin.h
Include37=sim\sfrAlias.h
Include38=hal.h
[Options.LK78K0R 0]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 1]
Version=100
O0=a.lmf
G=0
E=0
E0=a.elk
GO=0
GOValue=
GOStart=FC00
GOSizeValue=1024
GI=0
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=1
MemInfoCheck=0
P=1
P0=a.map
MI=0
GB=0
GBValue=
KM=1
KD=1
KP=0
KL=0
LF=0
LL=0
S=0
W=1
SELFCheck=0
SELF=0
ZB=
CommandFile=0
[Options.LK78K0R 2]
Version=100
O0=bsr.lmf
O1=bsr_k0r.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=1B339499E033F240BFAA
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=7EFBFF
KM=1
KD=0
KP=0
KL=0
LF=0
LL=0
B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib
B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
OFILE=C:\78k_data\yav-mcu-basara\branches\sim\bsr.lmf
[Options.LK78K0R 3]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 4]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 5]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.78K0R]
BuildMode=2
BuildMode2=K0R_dbg
BuildMode3=BSR_dbg
BuildMode4=BSR_rel
BuildMode5=BSR_WM0
DefaultMode2=1
DefaultMode3=1
DefaultMode4=1
DefaultMode5=1
[Options.CC78K0R 0]
Version=210
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
@ -456,8 +751,8 @@ Flashobj=0
FlashStartadr=
FlashBranchStartadr=
Mirror=0
Saddrglobalchk=0
Saddrglobal=1066
Saddrglobalchk=1
Saddrglobal=1063
Saddrstaticchk=0
Saddrstatic=1072
Bitfieldmsb=0
@ -508,7 +803,7 @@ Intunexpand=1
Kanjicode=1210
Verbose=0
CommandFile=0
Warninglevel=2
Warninglevel=1
Startupchk=1
Fixation=0
FarROMization=0
@ -764,296 +1059,3 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi
VF78K0Rchk=0
VF78K0Rvs=
[Options.LK78K0R 0]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 1]
Version=100
O0=a.lmf
G=0
E=0
E0=a.elk
GO=0
GOValue=
GOStart=FC00
GOSizeValue=1024
GI=0
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=1
MemInfoCheck=0
P=1
P0=a.map
MI=0
GB=0
GBValue=
KM=1
KD=1
KP=0
KL=0
LF=0
LL=0
S=0
W=1
SELFCheck=0
SELF=0
ZB=
CommandFile=0
[Options.LK78K0R 2]
Version=100
O0=bsr.lmf
O1=bsr_k0r.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=1B339499E033F240BFAA
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=7EFBFF
KM=1
KD=0
KP=0
KL=0
LF=0
LL=0
B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib
B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
OFILE=C:\78k_data\yav-mcu-basara\branches\sim\bsr.lmf
[Options.LK78K0R 3]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 4]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 5]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LCNV78K0R 0]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 1]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 2]
Version=100
LCNV_GO=0
O0=inter_asm
E=0
CommandFile=0
[Options.LCNV78K0R 3]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 4]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 5]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.78K0R]
BuildMode=2
BuildMode2=K0R_dbg
BuildMode3=BSR_dbg
BuildMode4=BSR_rel
BuildMode5=BSR_WM0
DefaultMode2=1
DefaultMode3=1
DefaultMode4=1
DefaultMode5=1

View File

@ -1,14 +1,20 @@
[ProjectManager]
FrameMax=0
FrameX=11
FrameY=26
FrameCX=1614
FrameCY=1005
OpenFile1=ProjectWindow
FrameX=1244
FrameY=196
FrameCX=1440
FrameCY=895
OpenFile1=i2c_ctr.c,0,150,150,1469,736,0,40,0,0
OpenFile2=hal.c,0,200,200,1395,681,14,13,13,0
OpenFile3=sw.c,0,127,86,1322,567,0,138,0,0
OpenFile4=task_status.c,0,25,25,1220,506,23,30,23,0
OpenFile5=pm.c,0,225,225,1420,706,15,471,15,0
OpenFile6=i2c_twl.c,0,50,50,1245,531,38,129,47,0
OpenFile7=main.c,0,200,200,1370,701,0,1,0,0
OpenFile8=ProjectWindow
PrjPos=0,0,706,0,291
OpenFile2=i2c_ctr.c,0,150,150,1469,736,0,40,0,0
OpenFile3=OutputWindow
OutputPos=0,32,734,735,1861
OpenFile9=OutputWindow
OutputPos=0,16,707,587,1440
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0

View File

@ -12,7 +12,7 @@ T=4e0a86c1
8=reboot.h
9=magic.h
[pm.c]
T=4e0aea23
T=4e1c1434
1=incs.h
2=adc.h
3=led.h
@ -22,7 +22,7 @@ T=4e0aea23
7=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h
8=fsl_user.h
[i2c_ctr.c]
T=4e0d6607
T=4e1d54ae
1=config.h
2=incs.h
[main.c]
@ -36,14 +36,14 @@ T=4e0af952
7=adc.h
8=pool.h
[magic.c]
T=4e0d6027
T=4e1d56d9
1=config.h
2=magic.h
[WDT.c]
T=4dfae637
1=incs_loader.h
[i2c_mcu.c]
T=4e0d6618
T=4e1d47dd
1=incs_loader.h
2=i2c_mcu.h
[i2c_twl.c]
@ -60,7 +60,7 @@ T=4dfafb99
T=4dfb0204
1=incs.h
[vreg_ctr.c]
T=4e0d6024
T=4e1a3d56
1=incs.h
2=vreg_ctr.h
3=rtc.h
@ -78,7 +78,7 @@ T=4df868b8
4=vreg_twl.h
5=vreg_ctr.h
[adc.c]
T=4e0c1e90
T=4e1c11e5
1=incs.h
2=adc.h
3=pm.h
@ -101,7 +101,7 @@ T=4dff0001
2=incs.h
3=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h
[self_flash.c]
T=4dfef02d
T=4e166b67
1=incs_loader.h
2=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h
3=fsl_user.h
@ -110,7 +110,7 @@ T=4dfef02d
6=magic.h
7=pm.h
[sw.c]
T=4dfae24c
T=4e166bf3
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -125,7 +125,7 @@ T=4dfae637
3=pm.h
4=accero.h
[task_misc.c]
T=4dff022d
T=4e1c12df
1=incs.h
2=renge\renge.h
3=pm.h
@ -135,7 +135,7 @@ T=4dff022d
7=led.h
8=vreg_twl.h
[task_sys.c]
T=4e0af952
T=4e1a935d
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -147,7 +147,7 @@ T=4e0af952
9=adc.h
10=self_flash.h
[pedo_alg_thre_det2.c]
T=4e097fce
T=4e1a3cda
1=incs.h
2=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h
3=accero.h
@ -158,13 +158,15 @@ T=4e097fce
T=4dfaf66c
1=config.h
[task_status.c]
T=4e0c2614
T=4e1abbad
1=incs_loader.h
2=renge\renge.h
3=pm.h
4=accero.h
5=adc.h
6=i2c_mcu.h
3=hal.h
4=pm.h
5=accero.h
6=adc.h
7=i2c_mcu.h
8=led.h
[led_cam.c]
T=4dfae24c
1=incs.h
@ -173,25 +175,29 @@ T=4dfae24c
T=4dfae637
1=incs.h
2=led.h
[hal.c]
T=4e1d5591
1=incs_loader.h
[incs_loader.h]
T=4dfae8e8
T=4e156766
1=sim\simOnWin.h
2=jhl_defs.h
3=user_define.h
4=bsr_system.h
5=renge\renge.h
6=vreg_ctr.h
7=vreg_twl.h
8=loader.h
9=i2c_mcu.h
10=WDT.h
4=hal.h
5=bsr_system.h
6=renge\renge.h
7=vreg_ctr.h
8=vreg_twl.h
9=loader.h
10=i2c_mcu.h
11=WDT.h
[jhl_defs.h]
T=4df868b8
1=config.h
[config.h]
T=4e0d28fe
T=4e16b88c
[user_define.h]
T=4e0af952
T=4e169edd
[bsr_system.h]
T=4df868b8
[renge\renge.h]
@ -204,7 +210,7 @@ T=4dfae85a
T=4df868b6
1=renge\renge_defs.h
[vreg_ctr.h]
T=4e0af952
T=4e1c100c
1=config.h
[vreg_twl.h]
T=4df868b8
@ -227,23 +233,24 @@ T=4df868b8
[magic.h]
T=4df868b8
[incs.h]
T=4dfec4bd
T=4e15675d
1=sim\simOnWin.h
2=jhl_defs.h
3=user_define.h
4=bsr_system.h
5=renge\renge.h
6=loader.h
7=vreg_ctr.h
8=vreg_twl.h
9=i2c_mcu.h
10=i2c_twl.h
11=rtc.h
12=accero.h
13=pm.h
14=sw.h
15=adc.h
16=WDT.h
4=hal.h
5=bsr_system.h
6=renge\renge.h
7=loader.h
8=vreg_ctr.h
9=vreg_twl.h
10=i2c_mcu.h
11=i2c_twl.h
12=rtc.h
13=accero.h
14=pm.h
15=sw.h
16=adc.h
17=WDT.h
[i2c_twl.h]
T=4df868b8
[accero.h]
@ -251,7 +258,7 @@ T=4df868b8
1=jhl_defs.h
2=pedometer.h
[pedometer.h]
T=4df868b8
T=4e1a3cda
[sw.h]
T=4df868b8
1=config.h
@ -259,7 +266,7 @@ T=4df868b8
T=4df868b8
1=jhl_defs.h
[led.h]
T=4dfafdf5
T=4e169c84
[batt_params.h]
T=4df868b9
1=jhl_defs.h
@ -285,5 +292,7 @@ T=45f12258
T=4e0014e7
1=sim\sfrAlias.h
[sim\sfrAlias.h]
T=4e0af952
T=4e169edd
1=config.h
[hal.h]
T=4e16a2b4