mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
電源off中にも電池温度を測定するための変更(未完)
CODECとの通信、仕様を誤って実装していた コード整理 タスクシステム(?)の修正 タスク実行し忘れることがあった tasks.cを分けた デバッガがリセットをかけたのか、PMICが異常検知でリセットがアサートされたのか判定するようにした 電池の認証削除 割り込みフラグクリアの仕様を変更 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@20 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
b23f299217
commit
ee79a61677
83
trunk/adc.c
83
trunk/adc.c
@ -34,21 +34,21 @@ void tsk_adc( )
|
|||||||
static u8 sndvol_codec;
|
static u8 sndvol_codec;
|
||||||
static u8 bt_temp_old;
|
static u8 bt_temp_old;
|
||||||
|
|
||||||
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
|
if( task_interval != 0 )
|
||||||
{
|
{
|
||||||
if( adc_updated )
|
task_interval -= 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
task_interval = ( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if( adc_updated )
|
||||||
|
{
|
||||||
|
if( system_status.pwr_state == ON )
|
||||||
{
|
{
|
||||||
|
|
||||||
if( task_interval != 0 )
|
|
||||||
{
|
|
||||||
task_interval -= 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
task_interval = ( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK );
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
tune ・フ変化では割り込みを入れない
|
tune ・フ変化では割り込みを入れない
|
||||||
// tune
|
// tune
|
||||||
@ -63,7 +63,7 @@ void tsk_adc( )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Volume
|
// Volume //
|
||||||
{
|
{
|
||||||
static u8 vol_old;
|
static u8 vol_old;
|
||||||
static u8 class_old;
|
static u8 class_old;
|
||||||
@ -83,22 +83,43 @@ void tsk_adc( )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// デバイスに伝える
|
||||||
|
if( sndvol_codec != vreg_ctr[VREG_C_SND_VOL] )
|
||||||
|
{
|
||||||
|
sndvol_codec = vreg_ctr[VREG_C_SND_VOL];
|
||||||
|
// DCPにも伝えておく
|
||||||
|
iic_mcu_write_a_byte( IIC_SLA_DCP, 0,
|
||||||
|
sndvol_codec / 2 + sndvol_codec / 4 ); // 簡易スケーリング todo
|
||||||
|
// codecに伝える
|
||||||
|
iic_mcu_write_a_byte( IIC_SLA_CODEC, REG_ADRS_CODEC_VOL,
|
||||||
|
127 - ( sndvol_codec / 2 + sndvol_codec / 4 )/2 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// デバイスに伝える
|
|
||||||
if( sndvol_codec != vreg_ctr[VREG_C_SND_VOL] )
|
// TUNE_LED //
|
||||||
{
|
{
|
||||||
sndvol_codec = vreg_ctr[VREG_C_SND_VOL];
|
// ここで?仕様?
|
||||||
// DCPにも伝えておく
|
switch ( vreg_ctr[VREG_C_LED_TUNE] )
|
||||||
iic_mcu_write_a_byte( IIC_SLA_DCP, 0,
|
{
|
||||||
sndvol_codec / 2 + sndvol_codec / 4 ); // 簡易スケーリング todo
|
case ( 1 ): // 点灯
|
||||||
// codecに伝える
|
LED_duty_TUNE = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||||
iic_mcu_write_a_byte( IIC_SLA_CODEC, REG_ADRS_CODEC_VOL,
|
break;
|
||||||
127 - ( sndvol_codec / 2 + sndvol_codec / 4 )/2 );
|
|
||||||
|
case ( 2 ): //
|
||||||
|
LED_duty_TUNE = LED_BRIGHT_MAX - vreg_ctr[VREG_C_TUNE];
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: // 消灯
|
||||||
|
LED_duty_TUNE = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
adc_updated = 0;
|
adc_updated = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ADCEN = 1;
|
ADCEN = 1;
|
||||||
ADM = 0b00011011; // セレクトモード、章圧、fCLK/6 ///ここから
|
ADM = 0b00011011; // セレクトモード、章圧、fCLK/6 ///ここから
|
||||||
|
|
||||||
@ -110,22 +131,6 @@ void tsk_adc( )
|
|||||||
ADIF = 0;
|
ADIF = 0;
|
||||||
ADMK = 0;
|
ADMK = 0;
|
||||||
|
|
||||||
|
|
||||||
// TUNE_LED ここかよ!
|
|
||||||
switch ( vreg_ctr[VREG_C_LED_TUNE] )
|
|
||||||
{
|
|
||||||
case ( 1 ): // 点灯
|
|
||||||
LED_duty_TUNE = vreg_ctr[VREG_C_LED_BRIGHT];
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ( 2 ): //
|
|
||||||
LED_duty_TUNE = LED_BRIGHT_MAX - vreg_ctr[VREG_C_TUNE];
|
|
||||||
break;
|
|
||||||
|
|
||||||
default: // 消灯
|
|
||||||
LED_duty_TUNE = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -11,11 +11,13 @@ enum pwr_state_
|
|||||||
SLEEP_TRIG,
|
SLEEP_TRIG,
|
||||||
SLEEP,
|
SLEEP,
|
||||||
// WAKE,
|
// WAKE,
|
||||||
|
BT_CHARGE,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum poweron_reason_
|
enum poweron_reason_
|
||||||
{
|
{
|
||||||
PWSW = 0,
|
NONE = 0,
|
||||||
|
PWSW,
|
||||||
RTC_ALARM,
|
RTC_ALARM,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
104
trunk/i2c_ctr.c
104
trunk/i2c_ctr.c
@ -5,13 +5,11 @@
|
|||||||
======================================================== */
|
======================================================== */
|
||||||
#include "incs.h"
|
#include "incs.h"
|
||||||
|
|
||||||
// u16 tot;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef _MCU_BSR_
|
#ifdef _MCU_BSR_
|
||||||
// #ifdef _MODEL_TS0_ || _MODEL_WM0_
|
// #ifdef _MODEL_TS0_ || _MODEL_WM0_
|
||||||
|
|
||||||
// ワーキングモデルはI2Cが逆
|
// ワーキングモデルはI2Cが逆
|
||||||
|
// TEGは回路図でテレコ
|
||||||
#define ACKD ACKD1
|
#define ACKD ACKD1
|
||||||
#define ACKE ACKE1
|
#define ACKE ACKE1
|
||||||
#define COI COI1
|
#define COI COI1
|
||||||
@ -84,9 +82,8 @@ __interrupt void int_iic_ctr( )
|
|||||||
|
|
||||||
rtc_unlock( );
|
rtc_unlock( );
|
||||||
|
|
||||||
// レジスタリードで、割り込みピンの設定
|
// レジスタリードで、割り込みピンをネゲート
|
||||||
// if( ( reg_adrs - 1 ) == VREG_C_IRQ3 ){
|
// まだ読まれてない割り込みがあれば、再度アサート
|
||||||
// IRQ0_neg;
|
|
||||||
if( !( ( vreg_ctr[VREG_C_IRQ0] == 0 )
|
if( !( ( vreg_ctr[VREG_C_IRQ0] == 0 )
|
||||||
&& ( vreg_ctr[VREG_C_IRQ1] == 0 )
|
&& ( vreg_ctr[VREG_C_IRQ1] == 0 )
|
||||||
&& ( vreg_ctr[VREG_C_IRQ2] == 0 ) && ( vreg_ctr[VREG_C_IRQ3] == 0 ) ) )
|
&& ( vreg_ctr[VREG_C_IRQ2] == 0 ) && ( vreg_ctr[VREG_C_IRQ3] == 0 ) ) )
|
||||||
@ -100,7 +97,6 @@ __interrupt void int_iic_ctr( )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
IRQ0_neg;
|
IRQ0_neg;
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -184,100 +180,6 @@ __interrupt void int_iic_ctr( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
// 一度通信が始まったら終わるまで戻らないバージョン
|
|
||||||
__interrupt void int_iic_ctr( )
|
|
||||||
{
|
|
||||||
static u8 state = 0;
|
|
||||||
static u8 reg_adrs;
|
|
||||||
// static u8 reg_adrs_internal;
|
|
||||||
static u8 trx_buf;
|
|
||||||
|
|
||||||
if( SPD )
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 自局呼び出しに応答。
|
|
||||||
// 初期化など
|
|
||||||
WREL = 1; // ウェイト解除
|
|
||||||
|
|
||||||
while( !IICAIF )
|
|
||||||
{;
|
|
||||||
}
|
|
||||||
IICAIF = 0;
|
|
||||||
|
|
||||||
// レジスタアドレス受信
|
|
||||||
reg_adrs = IICA;
|
|
||||||
WREL = 1;
|
|
||||||
trx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく
|
|
||||||
|
|
||||||
while( !IICAIF )
|
|
||||||
{;
|
|
||||||
}
|
|
||||||
IICAIF = 0;
|
|
||||||
|
|
||||||
if( STD )
|
|
||||||
{ // リスタートコンディション
|
|
||||||
// リードされる
|
|
||||||
if( COI )
|
|
||||||
{
|
|
||||||
state = IIC_TX;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// リスタートで違うデバイスが呼ばれた!
|
|
||||||
WREL = 1; // ウェイト解除?
|
|
||||||
state = IIC_IDLE; // 終了処理
|
|
||||||
SPIE = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ // ライト続行
|
|
||||||
state = IIC_RX;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( state == IIC_TX )
|
|
||||||
{
|
|
||||||
// 送信 //
|
|
||||||
do
|
|
||||||
{
|
|
||||||
IICA = trx_buf;
|
|
||||||
vreg_ctr_after_read( reg_adrs ); // 読んだらクリアなどの処理
|
|
||||||
reg_adrs += 1;
|
|
||||||
trx_buf = vreg_ctr_read( reg_adrs );
|
|
||||||
while( !IICAIF )
|
|
||||||
{;
|
|
||||||
}
|
|
||||||
IICAIF = 0;
|
|
||||||
}
|
|
||||||
while( ACKD );
|
|
||||||
LREL = 1;
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// 受信 //
|
|
||||||
SPIE = 1;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
trx_buf = IICA;
|
|
||||||
vreg_ctr_write( reg_adrs, trx_buf );
|
|
||||||
reg_adrs += 1;
|
|
||||||
WREL = 1;
|
|
||||||
while( !IICAIF )
|
|
||||||
{;
|
|
||||||
}
|
|
||||||
IICAIF = 0;
|
|
||||||
}
|
|
||||||
while( !SPD );
|
|
||||||
SPIE = 0;
|
|
||||||
}
|
|
||||||
state = IIC_IDLE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
|
|||||||
@ -272,7 +272,7 @@ err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat )
|
|||||||
その場合でもエラー検出などできません
|
その場合でもエラー検出などできません
|
||||||
DMA1を使用します。
|
DMA1を使用します。
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
err iic_mcu_write( u8 slave, u8 adrs, u8 len, u8 * src )
|
err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src )
|
||||||
{
|
{
|
||||||
//*
|
//*
|
||||||
// 使用中なら待つ
|
// 使用中なら待つ
|
||||||
|
|||||||
@ -21,7 +21,7 @@ extern u8 iic_mcu_bus_status;
|
|||||||
err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest );
|
err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest );
|
||||||
u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs );
|
u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs );
|
||||||
|
|
||||||
err iic_mcu_write( u8 SLA, u8 adrs, u8 len, u8 * src );
|
err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src );
|
||||||
err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat );
|
err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat );
|
||||||
|
|
||||||
// ↓その通信が完了したら解除されます。
|
// ↓その通信が完了したら解除されます。
|
||||||
|
|||||||
@ -18,6 +18,8 @@ typedef unsigned char err;
|
|||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 割り込みマスクが必要と言うことでこんな事をする羽目になりました
|
||||||
#if 0
|
#if 0
|
||||||
// マスクされてたら、フラグは立てるが、割り込みは入れない。
|
// マスクされてたら、フラグは立てるが、割り込みは入れない。
|
||||||
#define set_irq( irqreg, bitpos ) \
|
#define set_irq( irqreg, bitpos ) \
|
||||||
|
|||||||
@ -162,7 +162,7 @@ static void led_pow_normal( )
|
|||||||
{
|
{
|
||||||
static u8 state;
|
static u8 state;
|
||||||
|
|
||||||
if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.05 ) )
|
if( vreg_ctr[VREG_C_BT_REMAIN] < 3 )
|
||||||
{
|
{
|
||||||
// 赤点滅
|
// 赤点滅
|
||||||
state++;
|
state++;
|
||||||
@ -178,7 +178,7 @@ static void led_pow_normal( )
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.2 ) )
|
else if( vreg_ctr[VREG_C_BT_REMAIN] < 12 )
|
||||||
{
|
{
|
||||||
// 赤点灯
|
// 赤点灯
|
||||||
if( LED_duty_pow_H != 0x0000 )
|
if( LED_duty_pow_H != 0x0000 )
|
||||||
@ -260,7 +260,7 @@ static void led_pow_hotaru( )
|
|||||||
case ( 0 ):
|
case ( 0 ):
|
||||||
case ( 2 ):
|
case ( 2 ):
|
||||||
case ( 4 ):
|
case ( 4 ):
|
||||||
if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.2 ) )
|
if( vreg_ctr[VREG_C_BT_REMAIN] < 12 )
|
||||||
{
|
{
|
||||||
// 赤いとき
|
// 赤いとき
|
||||||
blue_to = 0;
|
blue_to = 0;
|
||||||
@ -275,7 +275,7 @@ static void led_pow_hotaru( )
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
// フェードアウト
|
// フェードアウト
|
||||||
if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.2 ) )
|
if( vreg_ctr[VREG_C_BT_REMAIN] < 12 )
|
||||||
{
|
{
|
||||||
red_to = 2;
|
red_to = 2;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -52,7 +52,6 @@ static fsl_u08 fsl_MK2H_bak_u08; /* }
|
|||||||
#define MGC_HEAD 0x2100
|
#define MGC_HEAD 0x2100
|
||||||
#define MGC_FOOT 0x47F6
|
#define MGC_FOOT 0x47F6
|
||||||
|
|
||||||
u8 temp;
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
@ -63,7 +62,7 @@ void power_save( );
|
|||||||
static void hdwinit2( );
|
static void hdwinit2( );
|
||||||
|
|
||||||
extern void main_loop( );
|
extern void main_loop( );
|
||||||
extern void chk_bootCluster( );
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
@ -79,6 +78,9 @@ void main( )
|
|||||||
// 旧版対応 強制リセット
|
// 旧版対応 強制リセット
|
||||||
WDTE = 0x00;
|
WDTE = 0x00;
|
||||||
/*
|
/*
|
||||||
|
{
|
||||||
|
u8 temp;
|
||||||
|
|
||||||
#asm
|
#asm
|
||||||
mov A,PSW
|
mov A,PSW
|
||||||
and A,#06h
|
and A,#06h
|
||||||
@ -103,6 +105,7 @@ void main( )
|
|||||||
DBG_LED_WIFI_2_off;
|
DBG_LED_WIFI_2_off;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -117,7 +120,7 @@ void main( )
|
|||||||
{
|
{
|
||||||
pwup_delay1 += 1;
|
pwup_delay1 += 1;
|
||||||
}
|
}
|
||||||
while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るため…。
|
while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るんだが…。
|
||||||
}
|
}
|
||||||
while( pwup_delay0 != 0 );
|
while( pwup_delay0 != 0 );
|
||||||
|
|
||||||
@ -150,8 +153,6 @@ void main( )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// chk_bootCluster( );
|
|
||||||
|
|
||||||
// 通常運転
|
// 通常運転
|
||||||
main_loop( );
|
main_loop( );
|
||||||
}
|
}
|
||||||
@ -159,16 +160,6 @@ void main( )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
|
||||||
省電力モードへ移行
|
|
||||||
======================================================== */
|
|
||||||
void power_save( )
|
|
||||||
{
|
|
||||||
HALT( );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
キーリターン割り込み
|
キーリターン割り込み
|
||||||
======================================================== */
|
======================================================== */
|
||||||
|
|||||||
10
trunk/main.c
10
trunk/main.c
@ -14,18 +14,15 @@
|
|||||||
#include "accero.h"
|
#include "accero.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
static void read_dipsw( );
|
static void read_dipsw( );
|
||||||
|
|
||||||
extern void power_save( );
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
system_status_ system_status;
|
system_status_ system_status;
|
||||||
|
|
||||||
extern u8 boot_ura;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
本当のエントリ関数は loader.c にあります
|
本当のエントリ関数は loader.c にあります
|
||||||
@ -72,6 +69,7 @@ void main_loop( void )
|
|||||||
|
|
||||||
EI( );
|
EI( );
|
||||||
|
|
||||||
|
RTCIMK = 0; /* 割り込み(アラーム&インターバル)許可 */
|
||||||
|
|
||||||
// メインループ //
|
// メインループ //
|
||||||
while( 1 )
|
while( 1 )
|
||||||
@ -84,7 +82,7 @@ void main_loop( void )
|
|||||||
renge_task_interval_run( );
|
renge_task_interval_run( );
|
||||||
}
|
}
|
||||||
renge_task_immed_run( ); // ここのループが廻る度に実行されます
|
renge_task_immed_run( ); // ここのループが廻る度に実行されます
|
||||||
power_save( );
|
HALT( );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
87
trunk/pm.c
87
trunk/pm.c
@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
// -1.45 ,-3.9}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
@ -44,24 +45,6 @@ u8 rcomp;
|
|||||||
float temp_co_up;
|
float temp_co_up;
|
||||||
float temp_co_dn;
|
float temp_co_dn;
|
||||||
|
|
||||||
#define _TEG_
|
|
||||||
|
|
||||||
/* ========================================================
|
|
||||||
バッテリの認証を行います。
|
|
||||||
引数 無し
|
|
||||||
返値 (ERR)ERR_SUCCESS 成功
|
|
||||||
それ以外 失敗
|
|
||||||
======================================================== */
|
|
||||||
err PM_bt_auth( )
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
todo
|
|
||||||
マキシムなら Dallas-1wire 通信
|
|
||||||
SHA-1計算
|
|
||||||
*/
|
|
||||||
return ( ERR_SUCCESS );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************//**
|
/******************************************************//**
|
||||||
@ -87,38 +70,36 @@ void PM_init( )
|
|||||||
}chars;
|
}chars;
|
||||||
}dat_16;
|
}dat_16;
|
||||||
|
|
||||||
#if 1
|
wait_ms( 150 );
|
||||||
wait_ms( 200 );
|
#if 0
|
||||||
// -1. なんかおかしい… リセットをかけてみる
|
// -1. なんかおかしい… リセットをかけてみる
|
||||||
dat_16._u16 = swap_endian_16( 0x5400 ); // reset
|
dat_16._u16 = swap_endian_16( 0x5400 ); // reset
|
||||||
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16.chars.lsb );
|
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16.chars.lsb );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wait_ms( 200 );
|
|
||||||
|
|
||||||
// 0. バッテリ残量IC クイックスタート
|
// 0. バッテリ残量IC クイックスタート
|
||||||
dat_16._u16 = swap_endian_16( 0x4000 ); // quick start
|
dat_16._u16 = swap_endian_16( 0x4000 ); // quick start
|
||||||
if( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16.chars.lsb ) != ERR_SUCCESS )
|
if( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16.chars.lsb ) != ERR_SUCCESS )
|
||||||
{
|
{
|
||||||
vreg_ctr[ VREG_C_STATUS_X ] |= 0x01;
|
vreg_ctr[ VREG_C_STATUS_1 ] |= 0x01;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
// 1. ロック解除
|
// 1. ロック解除
|
||||||
dat_16._u16 = swap_endian_16( 0x4057 ); // unlock key
|
dat_16._u16 = swap_endian_16( 0x4057 ); // unlock key
|
||||||
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16.chars.lsb );
|
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16._u16 );
|
||||||
|
|
||||||
// 2. 初期パラメータを一時保存
|
// 2. 初期パラメータを一時保存
|
||||||
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam );
|
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam );
|
||||||
|
|
||||||
// 3. 一時的にOCVを変更
|
// 3. 一時的にOCVを変更
|
||||||
dat_16._u16 = swap_endian_16( 0xD4C0 ); // マジックナンバー的なもの。メーカー指定
|
dat_16._u16 = swap_endian_16( 0xD4C0 ); // マジックナンバー的なもの。メーカー指定
|
||||||
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16.chars.lsb );
|
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16._u16 );
|
||||||
|
|
||||||
// 4. 一時的にRCOMPを変更
|
// 4. 一時的にRCOMPを変更
|
||||||
dat_16._u16 = swap_endian_16( 0xFF00 );
|
dat_16._u16 = swap_endian_16( 0xFF00 );
|
||||||
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &dat_16.chars.lsb );
|
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &dat_16._u16 );
|
||||||
|
|
||||||
// 電池メーカーの識別
|
// 電池メーカーの識別
|
||||||
BT_DET_P = 1;
|
BT_DET_P = 1;
|
||||||
@ -143,7 +124,7 @@ void PM_init( )
|
|||||||
|
|
||||||
// 7. OCVに「とある値」を書く
|
// 7. OCVに「とある値」を書く
|
||||||
dat_16._u16 = swap_endian_16( 0xD4C0 );
|
dat_16._u16 = swap_endian_16( 0xD4C0 );
|
||||||
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16.chars.lsb );
|
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16._u16 );
|
||||||
|
|
||||||
// 8. 150~600ms待つ。600msは厳守
|
// 8. 150~600ms待つ。600msは厳守
|
||||||
wait_ms( 200 );
|
wait_ms( 200 );
|
||||||
@ -162,7 +143,7 @@ void PM_init( )
|
|||||||
|
|
||||||
// 11. ロック
|
// 11. ロック
|
||||||
dat_16._u16 = swap_endian_16( 0x0000 ); // lock key
|
dat_16._u16 = swap_endian_16( 0x0000 ); // lock key
|
||||||
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16.chars.lsb );
|
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16._u16 );
|
||||||
|
|
||||||
// おしまい //
|
// おしまい //
|
||||||
}
|
}
|
||||||
@ -191,7 +172,7 @@ void PM_init( )
|
|||||||
======================================================== */
|
======================================================== */
|
||||||
task_status_immed PM_bt_temp_update( )
|
task_status_immed PM_bt_temp_update( )
|
||||||
{
|
{
|
||||||
s8 newrcomp;
|
s16 newrcomp;
|
||||||
static s8 temp_old;
|
static s8 temp_old;
|
||||||
static u8 count = 0; // たまにしか書きに行かない
|
static u8 count = 0; // たまにしか書きに行かない
|
||||||
static s16 temperature;
|
static s16 temperature;
|
||||||
@ -472,13 +453,14 @@ err PM_sys_pow_on( )
|
|||||||
|
|
||||||
// 残量チェック
|
// 残量チェック
|
||||||
vreg_ctr[VREG_C_BT_REMAIN] = PM_get_batt_left( );
|
vreg_ctr[VREG_C_BT_REMAIN] = PM_get_batt_left( );
|
||||||
vreg_ctr[VREG_C_BT_REMAIN] = 200;
|
vreg_ctr[VREG_C_BT_REMAIN] = 99;
|
||||||
if( vreg_ctr[VREG_C_BT_REMAIN] < 0 )
|
if( vreg_ctr[VREG_C_BT_REMAIN] < 0 )
|
||||||
{
|
{
|
||||||
return ( 1 );
|
return ( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// 電源順次立ち上げ
|
// 電源順次立ち上げ
|
||||||
|
PM_reset_ast( );
|
||||||
RESET2_ast;
|
RESET2_ast;
|
||||||
FCRAM_RST_ast;
|
FCRAM_RST_ast;
|
||||||
|
|
||||||
@ -511,7 +493,8 @@ err PM_sys_pow_on( )
|
|||||||
u8 temp;
|
u8 temp;
|
||||||
|
|
||||||
// 電源投入
|
// 電源投入
|
||||||
RESETs_ast;
|
RESET1_ast;
|
||||||
|
RESET2_ast;
|
||||||
FCRAM_RST_ast;
|
FCRAM_RST_ast;
|
||||||
|
|
||||||
PM_TEG_PWSW = 1;
|
PM_TEG_PWSW = 1;
|
||||||
@ -535,7 +518,8 @@ err PM_sys_pow_on( )
|
|||||||
if( !RESET1_n )
|
if( !RESET1_n )
|
||||||
{
|
{
|
||||||
// 起動失敗
|
// 起動失敗
|
||||||
RESETs_ast;
|
RESET1_ast;
|
||||||
|
RESET2_ast;
|
||||||
FCRAM_RST_ast;
|
FCRAM_RST_ast;
|
||||||
return ( ERR_ERR );
|
return ( ERR_ERR );
|
||||||
}
|
}
|
||||||
@ -567,8 +551,8 @@ err PM_sys_pow_off( )
|
|||||||
|
|
||||||
if( RESET1_n )
|
if( RESET1_n )
|
||||||
{
|
{
|
||||||
|
RESET1_ast;
|
||||||
RESETs_ast;
|
RESET2_ast;
|
||||||
FCRAM_RST_ast;
|
FCRAM_RST_ast;
|
||||||
PM_TEG_PWSW = 1;
|
PM_TEG_PWSW = 1;
|
||||||
wait_ms( 250 );
|
wait_ms( 250 );
|
||||||
@ -576,7 +560,8 @@ err PM_sys_pow_off( )
|
|||||||
wait_ms( 250 );
|
wait_ms( 250 );
|
||||||
PM_TEG_PWSW = 0;
|
PM_TEG_PWSW = 0;
|
||||||
}
|
}
|
||||||
RESETs_ast;
|
RESET1_ast;
|
||||||
|
RESET2_ast;
|
||||||
FCRAM_RST_ast;
|
FCRAM_RST_ast;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@ -619,7 +604,7 @@ void tsk_batt( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 電源周りのステータスが変化? ///
|
// 電源周りのステータスが変化? ///
|
||||||
set_bit( PM_EXTDC, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
|
set_bit( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
|
||||||
set_bit( !BT_CHG_n, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE );
|
set_bit( !BT_CHG_n, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE );
|
||||||
// →割り込み。miscの中でよろしくやってくれている。
|
// →割り込み。miscの中でよろしくやってくれている。
|
||||||
|
|
||||||
@ -644,17 +629,17 @@ void tsk_batt( )
|
|||||||
&& ( ( 345 / 4 ) < vreg_ctr[VREG_C_BT_TEMP] )
|
&& ( ( 345 / 4 ) < vreg_ctr[VREG_C_BT_TEMP] )
|
||||||
&& ( vreg_ctr[VREG_C_BT_TEMP] < ( 739 / 4 ) ) ) )
|
&& ( vreg_ctr[VREG_C_BT_TEMP] < ( 739 / 4 ) ) ) )
|
||||||
{
|
{
|
||||||
BT_CHG_EN = 1;
|
BT_CHG_EN_n = 0; // 温度範囲OKで充電再開
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BT_CHG_EN = 0;
|
BT_CHG_EN_n = 1; // 温度危険! 充電停止
|
||||||
}
|
}
|
||||||
|
|
||||||
// 充電LED
|
// 充電LED
|
||||||
LED_duty_CHARGE = !BT_CHG_n ? vreg_ctr[VREG_C_LED_BRIGHT] : 0;
|
LED_duty_CHARGE = !BT_CHG_n ? vreg_ctr[VREG_C_LED_BRIGHT] : 0;
|
||||||
|
|
||||||
if(( vreg_ctr[ VREG_C_STATUS_X ] & 0x01 ) == 0 )
|
if(( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 )
|
||||||
{
|
{
|
||||||
// 電池残量の取得
|
// 電池残量の取得
|
||||||
{
|
{
|
||||||
@ -667,7 +652,7 @@ void tsk_batt( )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vreg_ctr[ VREG_C_BT_REMAIN ] = 0xFF;
|
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
|
||||||
}
|
}
|
||||||
vreg_ctr[ VREG_C_FREE0 ] = vreg_ctr[ VREG_C_BT_REMAIN ];
|
vreg_ctr[ VREG_C_FREE0 ] = vreg_ctr[ VREG_C_BT_REMAIN ];
|
||||||
vreg_ctr[ VREG_C_FREE1 ] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
|
vreg_ctr[ VREG_C_FREE1 ] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
|
||||||
@ -718,11 +703,11 @@ extern u8 temp_debug_3;
|
|||||||
task_status_immed ntr_pmic_comm( )
|
task_status_immed ntr_pmic_comm( )
|
||||||
{
|
{
|
||||||
#ifdef _CODEC_CTR_
|
#ifdef _CODEC_CTR_
|
||||||
static u8 reg_shadow[2];
|
static u8 reg_shadow;
|
||||||
u8 reg1_old;
|
u8 reg1_old;
|
||||||
|
|
||||||
reg1_old = reg_shadow[1];
|
reg1_old = reg_shadow;
|
||||||
if( iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 2, reg_shadow ) != ERR_SUCCESS )
|
if( iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, ®_shadow ) != ERR_SUCCESS )
|
||||||
{
|
{
|
||||||
return ( ERR_FINISED );
|
return ( ERR_FINISED );
|
||||||
}
|
}
|
||||||
@ -730,7 +715,7 @@ task_status_immed ntr_pmic_comm( )
|
|||||||
DI( );
|
DI( );
|
||||||
|
|
||||||
// offリクエスト
|
// offリクエスト
|
||||||
if( ( reg_shadow[0] & REG_BIT_TWL_REQ_OFF_REQ ) != 0 )
|
if( ( reg_shadow & REG_BIT_TWL_REQ_OFF_REQ ) != 0 )
|
||||||
{
|
{
|
||||||
set_irq( VREG_C_IRQ3, REG_BIT_TWL_OFF_REQ );
|
set_irq( VREG_C_IRQ3, REG_BIT_TWL_OFF_REQ );
|
||||||
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_OFF_REQ;
|
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_OFF_REQ;
|
||||||
@ -741,7 +726,7 @@ task_status_immed ntr_pmic_comm( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// リセットリクエスト
|
// リセットリクエスト
|
||||||
if( ( reg_shadow[0] & REG_BIT_TWL_REQ_RST_REQ ) != 0 )
|
if( ( reg_shadow & REG_BIT_TWL_REQ_RST_REQ ) != 0 )
|
||||||
{
|
{
|
||||||
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_RESET_REQ;
|
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_RESET_REQ;
|
||||||
if( ( vreg_ctr[VREG_C_IRQ_MASK3] & REG_BIT_TWL_RESET_REQ ) == 0 )
|
if( ( vreg_ctr[VREG_C_IRQ_MASK3] & REG_BIT_TWL_RESET_REQ ) == 0 )
|
||||||
@ -751,9 +736,9 @@ task_status_immed ntr_pmic_comm( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// バックライトが...
|
// バックライトが...
|
||||||
if( ( ( reg1_old ^ reg_shadow[1] ) & REG_BIT_TWL_REQ_BL ) != 0 ) // バックライトの2ビットが何らか変化して、
|
if( ( ( reg1_old ^ reg_shadow ) & REG_BIT_TWL_REQ_BL ) != 0 ) // バックライトの2ビットが何らか変化して、
|
||||||
{
|
{
|
||||||
if( ( reg_shadow[1] & REG_BIT_TWL_REQ_BL ) == 0x00 ) // 00になった
|
if( ( reg_shadow & REG_BIT_TWL_REQ_BL ) == 0x00 ) // 00になった
|
||||||
{
|
{
|
||||||
// 両方消された
|
// 両方消された
|
||||||
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_BL_OFF;
|
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_BL_OFF;
|
||||||
@ -762,7 +747,7 @@ task_status_immed ntr_pmic_comm( )
|
|||||||
IRQ0_ast;
|
IRQ0_ast;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( ( reg_shadow[1] & REG_BIT_TWL_REQ_BL ) == REG_BIT_TWL_REQ_BL )
|
else if( ( reg_shadow & REG_BIT_TWL_REQ_BL ) == REG_BIT_TWL_REQ_BL )
|
||||||
{
|
{
|
||||||
// 両方ついた
|
// 両方ついた
|
||||||
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_BL_ON;
|
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_BL_ON;
|
||||||
@ -773,8 +758,8 @@ task_status_immed ntr_pmic_comm( )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
EI( );
|
EI( );
|
||||||
reg_shadow[0] &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ );
|
reg_shadow &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ );
|
||||||
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_PM, reg_shadow[0] );
|
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_PM, reg_shadow );
|
||||||
#endif
|
#endif
|
||||||
return ( ERR_FINISED );
|
return ( ERR_FINISED );
|
||||||
}
|
}
|
||||||
|
|||||||
@ -114,6 +114,7 @@ task_status_immed tski_PM_LCD_off( );
|
|||||||
#ifdef _model_CTR_
|
#ifdef _model_CTR_
|
||||||
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x47 ))
|
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x47 ))
|
||||||
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 ))
|
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 ))
|
||||||
|
// todo コア電圧を下げる
|
||||||
#else
|
#else
|
||||||
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 | 0x40 ))
|
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 | 0x40 ))
|
||||||
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 | 0x03 ))
|
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 | 0x03 ))
|
||||||
@ -140,7 +141,6 @@ task_status_immed tski_PM_LCD_off( );
|
|||||||
#define PM_VDDLCD_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, 0 ) )
|
#define PM_VDDLCD_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, 0 ) )
|
||||||
|
|
||||||
#define PM_set_BL( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, dat ) )
|
#define PM_set_BL( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, dat ) )
|
||||||
#define PM_set_pow_save( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, dat ) )
|
|
||||||
#define PM_set_adc1( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC1, dat ) )
|
#define PM_set_adc1( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC1, dat ) )
|
||||||
#define PM_set_adc2( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC2, dat ) )
|
#define PM_set_adc2( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC2, dat ) )
|
||||||
|
|
||||||
|
|||||||
@ -149,7 +149,7 @@ static u8 lock = 0;
|
|||||||
for( temp = 0; temp < task_immed_index; temp += 1 ){
|
for( temp = 0; temp < task_immed_index; temp += 1 ){
|
||||||
if( tasks_immed[ temp ] == new_task ){
|
if( tasks_immed[ temp ] == new_task ){
|
||||||
// while(1){
|
// while(1){
|
||||||
NOP(); // アサートで止めたいのですが。
|
NOP(); // アサートで止めたい
|
||||||
// }
|
// }
|
||||||
lock = 0;
|
lock = 0;
|
||||||
EI();
|
EI();
|
||||||
@ -263,6 +263,7 @@ err renge_task_immed_run(){
|
|||||||
if( tasks_immed[ task_id ]() == ERR_FINISED ){
|
if( tasks_immed[ task_id ]() == ERR_FINISED ){
|
||||||
DI();
|
DI();
|
||||||
renge_task_immed_del( task_id );
|
renge_task_immed_del( task_id );
|
||||||
|
task_id -= 1; // ↑でリストを前詰めするので帳尻あわせが必要 todo
|
||||||
EI();
|
EI();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -315,7 +316,7 @@ err renge_task_immed_run(){
|
|||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
単位は ms
|
単位は ms
|
||||||
NOPを回すだけ、指定時間CPUを占有します。
|
NOPを回すだけ、指定時間CPUを *占有します* 。
|
||||||
割り込みとか入るとその分遅れます。
|
割り込みとか入るとその分遅れます。
|
||||||
少し誤差あります。
|
少し誤差あります。
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|||||||
@ -34,9 +34,9 @@ void RTC_init( void )
|
|||||||
SEC = 0;
|
SEC = 0;
|
||||||
MIN = 0;
|
MIN = 0;
|
||||||
HOUR = 15;
|
HOUR = 15;
|
||||||
DAY = ((1<<4) + 7);
|
DAY = 1;
|
||||||
WEEK = 0;
|
WEEK = 0;
|
||||||
MONTH = 10;
|
MONTH = 11;
|
||||||
YEAR = 9;
|
YEAR = 9;
|
||||||
|
|
||||||
ALARMWW = 0x7F;
|
ALARMWW = 0x7F;
|
||||||
@ -75,6 +75,7 @@ __interrupt void int_rtc_int( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
RTC アラーム割り込み
|
RTC アラーム割り込み
|
||||||
2^6/fXT(1.953125 ms)
|
2^6/fXT(1.953125 ms)
|
||||||
|
|||||||
@ -75,10 +75,6 @@ err firm_restore( );
|
|||||||
#define N_MGC_T 0x47F6
|
#define N_MGC_T 0x47F6
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
|
||||||
u8 boot_ura; // ブートクラスタ 0/1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
======================================================== */
|
======================================================== */
|
||||||
@ -343,21 +339,6 @@ err firm_restore( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void chk_bootCluster( )
|
|
||||||
{
|
|
||||||
u8 data_buffer[SELF_UPDATE_BUFF_SIZE];
|
|
||||||
u8 err;
|
|
||||||
|
|
||||||
DI( );
|
|
||||||
FSL_Open( ); // 割り込み禁止など
|
|
||||||
|
|
||||||
err = FSL_Init( data_buffer ); // ライブラリ初期化。割り込み中断考慮せず
|
|
||||||
err |= FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
|
|
||||||
err |= FSL_GetActiveBootCluster( &boot_ura );
|
|
||||||
|
|
||||||
FSL_Close( );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
|
|||||||
153
trunk/sw.c
Normal file
153
trunk/sw.c
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
#pragma SFR
|
||||||
|
#pragma NOP
|
||||||
|
#pragma HALT
|
||||||
|
#pragma STOP
|
||||||
|
|
||||||
|
#include "incs.h"
|
||||||
|
|
||||||
|
#include "i2c_twl.h"
|
||||||
|
#include "i2c_ctr.h"
|
||||||
|
#include "led.h"
|
||||||
|
#include "accero.h"
|
||||||
|
#include "pm.h"
|
||||||
|
#include "rtc.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
#define INTERVAL_TSK_SW 16
|
||||||
|
#define CLICK_THRESHOLD 3
|
||||||
|
#define HOLD_THREASHOLD ( 800 / INTERVAL_TSK_SW )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
u8 SW_pow_count, SW_home_count, SW_wifi_count;
|
||||||
|
bit SW_pow_mask, SW_home_mask, SW_wifi_mask;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
// 押した時間を数える。押しっぱなしでも0に戻らない
|
||||||
|
// maskが非0の時は、一度離すまで無視する
|
||||||
|
#define count_sw_n( sw, counter, mask ) \
|
||||||
|
{ \
|
||||||
|
if( sw ){ \
|
||||||
|
mask = 0; \
|
||||||
|
counter = 0; \
|
||||||
|
}else{ \
|
||||||
|
if( mask != 0 ){ \
|
||||||
|
counter = 0; \
|
||||||
|
}else{ \
|
||||||
|
counter += 1; \
|
||||||
|
if( counter == 0 ) counter = 255; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================
|
||||||
|
スイッチの監視
|
||||||
|
チャタリングをはねたり、長押しや、押したトリガなどの検出など
|
||||||
|
======================================================== */
|
||||||
|
void tsk_sw( )
|
||||||
|
{
|
||||||
|
static u8 cnt_force_off = 0;
|
||||||
|
static u8 task_interval = 0;
|
||||||
|
|
||||||
|
if( task_interval != 0 )
|
||||||
|
{
|
||||||
|
task_interval -= 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
task_interval = ( INTERVAL_TSK_SW / SYS_INTERVAL_TICK );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch ( system_status.pwr_state )
|
||||||
|
{
|
||||||
|
case ( OFF_TRIG ):
|
||||||
|
SW_pow_count = 0;
|
||||||
|
SW_wifi_count = 0;
|
||||||
|
SW_home_count = 0;
|
||||||
|
cnt_force_off = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ( ON ):
|
||||||
|
case ( SLEEP ):
|
||||||
|
case ( BT_CHARGE ):
|
||||||
|
// 電源スイッチの監視 //
|
||||||
|
if( SW_POW_n )
|
||||||
|
{
|
||||||
|
if( ( CLICK_THRESHOLD < SW_pow_count ) && ( SW_pow_count < HOLD_THREASHOLD ) )
|
||||||
|
{
|
||||||
|
set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( SW_pow_count == HOLD_THREASHOLD )
|
||||||
|
{
|
||||||
|
set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD );
|
||||||
|
}
|
||||||
|
else if( SW_pow_count == ( HOLD_THREASHOLD * 4 ) )
|
||||||
|
{ // todo
|
||||||
|
// vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ONLY_RED;
|
||||||
|
system_status.pwr_state = OFF_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 電源OFF割り込みを入れたが…
|
||||||
|
if( ( vreg_ctr[VREG_C_IRQ0] & REG_BIT_SW_POW_HOLD ) != 0 )
|
||||||
|
{
|
||||||
|
cnt_force_off += 1;
|
||||||
|
if( cnt_force_off >= 13 )
|
||||||
|
{ // …返事がない。強制的に切る。
|
||||||
|
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF;
|
||||||
|
if( ( LED_duty_pow_H == 0 ) && ( LED_duty_pow_L == 0 ) )
|
||||||
|
{
|
||||||
|
system_status.pwr_state = OFF_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cnt_force_off = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// HOME スイッチ //
|
||||||
|
if( SW_HOME_n )
|
||||||
|
{
|
||||||
|
if( ( CLICK_THRESHOLD < SW_home_count ) && ( SW_home_count < HOLD_THREASHOLD ) )
|
||||||
|
{
|
||||||
|
set_irq( VREG_C_IRQ0, REG_BIT_SW_HOME_CLICK );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( SW_home_count == HOLD_THREASHOLD )
|
||||||
|
{
|
||||||
|
set_irq( VREG_C_IRQ0, REG_BIT_SW_HOME_HOLD );
|
||||||
|
}
|
||||||
|
|
||||||
|
// wifi sw //
|
||||||
|
if( SW_wifi_count == 10 )
|
||||||
|
{
|
||||||
|
set_irq( VREG_C_IRQ0, REG_BIT_SW_WIFI_CLICK );
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ボタン押し時間のカウント
|
||||||
|
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == OFF ) )
|
||||||
|
{
|
||||||
|
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask );
|
||||||
|
#ifdef _SW_HOME_ENABLE_
|
||||||
|
count_sw_n( SW_HOME_n, SW_home_count, SW_home_mask );
|
||||||
|
#endif
|
||||||
|
count_sw_n( SW_WIFI_n, SW_wifi_count, SW_wifi_mask );
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
7
trunk/sw.h
Normal file
7
trunk/sw.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#ifndef _sw_
|
||||||
|
#define _sw_
|
||||||
|
|
||||||
|
extern u8 SW_pow_count, SW_home_count, SW_wifi_count;
|
||||||
|
extern bit SW_pow_mask, SW_home_mask, SW_wifi_mask;
|
||||||
|
|
||||||
|
#endif
|
||||||
114
trunk/task_debug.c
Normal file
114
trunk/task_debug.c
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
#pragma SFR
|
||||||
|
#pragma NOP
|
||||||
|
#pragma HALT
|
||||||
|
#pragma STOP
|
||||||
|
|
||||||
|
#include "incs.h"
|
||||||
|
#include "renge.h"
|
||||||
|
#include "pm.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================
|
||||||
|
======================================================== */
|
||||||
|
void tsk_debug( )
|
||||||
|
{
|
||||||
|
u8 temp;
|
||||||
|
static u8 count = 0;
|
||||||
|
static u8 task_interval;
|
||||||
|
|
||||||
|
if( system_status.pwr_state == ON_TRIG ){
|
||||||
|
|
||||||
|
iic_mcu_write_a_byte( IIC_SLA_DCP, 0x08, 0x80 ); // ACR←0x80 揮発モードへ
|
||||||
|
|
||||||
|
if( !SW_SEL_n ){
|
||||||
|
renge_task_immed_add( tski_PM_LCD_on );
|
||||||
|
renge_task_immed_add( tski_PM_BL_on );
|
||||||
|
}
|
||||||
|
|
||||||
|
// vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x03;
|
||||||
|
// renge_task_immed_add( acc_hosu_set );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO );
|
||||||
|
count += 1;
|
||||||
|
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count );
|
||||||
|
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count );
|
||||||
|
*/
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 temp_debug_3;
|
||||||
|
|
||||||
|
void tsk_debug2( )
|
||||||
|
{
|
||||||
|
u8 str[4];
|
||||||
|
|
||||||
|
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
str[3] = vreg_ctr[ VREG_C_FREE0 ];
|
||||||
|
str[2] = vreg_ctr[ VREG_C_FREE1 ];
|
||||||
|
str[1] = vreg_ctr[ VREG_C_STATUS ];
|
||||||
|
str[0] = vreg_ctr[ VREG_C_RTC_SEC ];
|
||||||
|
*/
|
||||||
|
str[3] = vreg_ctr[ VREG_C_IRQ1 ];
|
||||||
|
str[2] = vreg_ctr[ VREG_C_IRQ2 ];
|
||||||
|
str[1] = vreg_ctr[ VREG_C_IRQ3 ];
|
||||||
|
// str[0] = vreg_ctr[ VREG_C_STATUS ];
|
||||||
|
str[0] = temp_debug_3;
|
||||||
|
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_TUNE ] );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_TUNE ] );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] );
|
||||||
|
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
|
||||||
|
|
||||||
|
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] );
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* ========================================================
|
||||||
|
タスクひな形
|
||||||
|
======================================================== */
|
||||||
|
task_interval tsk_hina( )
|
||||||
|
{
|
||||||
|
switch ( system_status.pwr_state )
|
||||||
|
{
|
||||||
|
case OFF:
|
||||||
|
case ON_TRIG:
|
||||||
|
case ON:
|
||||||
|
case SLEEP_TRIG:
|
||||||
|
case SLEEP:
|
||||||
|
case OFF_TRIG:
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
return ( 次の起 ・ョまでのシ ・X ・e ・ tick ・・); // 毎 tic 呼ばれることになります
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ポインタで何かもらうのは危険な気がしてきた
|
||||||
|
/* このように使う
|
||||||
|
renge_task_immed_add( タスク関数へのポインタ );
|
||||||
|
*/
|
||||||
|
task_status_immed tsk_imm_hina( u8 * arg )
|
||||||
|
{
|
||||||
|
return ( ERR_FINISED );
|
||||||
|
// ERR_FINISED タスクを削除
|
||||||
|
// ERR_CONTINUE 次になんか割り込みなり、ユーザー操作なり、システムチックが
|
||||||
|
// 来たときに再度実行
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
#include "accero.h"
|
#include "accero.h"
|
||||||
|
|
||||||
extern u8 boot_ura;
|
|
||||||
|
|
||||||
#define INTERVAL_TSK_MISC_STAT 4
|
#define INTERVAL_TSK_MISC_STAT 4
|
||||||
|
|
||||||
|
|
||||||
@ -116,24 +114,27 @@ void tsk_misc_stat( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
//#ifdef _MCU_KE3_
|
//#ifdef _MCU_KE3_
|
||||||
|
// KE3では必須です。
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
加速度センサ割り込みピンがオリジナルマイコンには無いので
|
加速度センサ割り込みピンがオリジナルマイコンには無いので
|
||||||
ポーリングする。
|
ポーリングする。
|
||||||
歩数計用
|
歩数計用
|
||||||
BSRマイコンはaccero.cで割り込みルーチンからタスク登録します。
|
BSRマイコンはaccero.cで割り込みルーチンからタスク登録します。
|
||||||
======================================================== */
|
======================================================== */
|
||||||
|
// 割り込みの取りこぼし?
|
||||||
if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
|
if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
|
||||||
{
|
{
|
||||||
if( ACC_VALID )
|
if( ACC_VALID )
|
||||||
{
|
{
|
||||||
// renge_task_immed_add( tsk_cbk_accero );
|
renge_task_immed_add( tsk_cbk_accero );
|
||||||
|
NOP();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
// 割り込みの取りこぼし?
|
// 割り込みの取りこぼし?
|
||||||
if( !PM_IRQ_n ){
|
if( !PM_IRQ_n ){
|
||||||
// renge_task_immed_add( ntr_pmic_comm );
|
renge_task_immed_add( ntr_pmic_comm );
|
||||||
NOP();
|
NOP();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -143,109 +144,6 @@ void tsk_misc_stat( )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
|
||||||
======================================================== */
|
|
||||||
void tsk_debug( )
|
|
||||||
{
|
|
||||||
u8 temp;
|
|
||||||
static u8 count = 0;
|
|
||||||
static u8 task_interval;
|
|
||||||
|
|
||||||
if( system_status.pwr_state == ON_TRIG ){
|
|
||||||
if( !SW_SEL_n ){
|
|
||||||
renge_task_immed_add( tski_PM_LCD_on );
|
|
||||||
wait_ms( 50 );
|
|
||||||
renge_task_immed_add( tski_PM_BL_on );
|
|
||||||
}
|
|
||||||
|
|
||||||
// vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x03;
|
|
||||||
// renge_task_immed_add( acc_hosu_set );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO );
|
|
||||||
count += 1;
|
|
||||||
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count );
|
|
||||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count );
|
|
||||||
*/
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
u8 temp_debug_3;
|
|
||||||
|
|
||||||
void tsk_debug2( )
|
|
||||||
{
|
|
||||||
u8 str[4];
|
|
||||||
|
|
||||||
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
str[3] = vreg_ctr[ VREG_C_FREE0 ];
|
|
||||||
str[2] = vreg_ctr[ VREG_C_FREE1 ];
|
|
||||||
str[1] = vreg_ctr[ VREG_C_STATUS ];
|
|
||||||
str[0] = vreg_ctr[ VREG_C_RTC_SEC ];
|
|
||||||
*/
|
|
||||||
str[3] = vreg_ctr[ VREG_C_IRQ1 ];
|
|
||||||
str[2] = vreg_ctr[ VREG_C_IRQ2 ];
|
|
||||||
str[1] = vreg_ctr[ VREG_C_IRQ3 ];
|
|
||||||
// str[0] = vreg_ctr[ VREG_C_STATUS ];
|
|
||||||
str[0] = temp_debug_3;
|
|
||||||
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_TUNE ] );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_TUNE ] );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] );
|
|
||||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
|
|
||||||
|
|
||||||
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] );
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* ========================================================
|
|
||||||
タスクひな形
|
|
||||||
======================================================== */
|
|
||||||
task_interval tsk_hina( )
|
|
||||||
{
|
|
||||||
switch ( system_status.pwr_state )
|
|
||||||
{
|
|
||||||
case OFF:
|
|
||||||
case ON_TRIG:
|
|
||||||
case ON:
|
|
||||||
case SLEEP_TRIG:
|
|
||||||
case SLEEP:
|
|
||||||
case OFF_TRIG:
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
|
|
||||||
return ( 次の起 ・ョまでのシ ・X ・e ・ tick ・・); // 毎 tic 呼ばれることになります
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ポインタで何かもらうのは危険な気がしてきた
|
|
||||||
/* このように使う
|
|
||||||
renge_task_immed_add( タスク関数へのポインタ );
|
|
||||||
*/
|
|
||||||
task_status_immed tsk_imm_hina( u8 * arg )
|
|
||||||
{
|
|
||||||
return ( ERR_FINISED );
|
|
||||||
// ERR_FINISED タスクを削除
|
|
||||||
// ERR_CONTINUE 次になんか割り込みなり、ユーザー操作なり、システムチックが
|
|
||||||
// 来たときに再度実行
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
逐一起動タスク
|
逐一起動タスク
|
||||||
@ -267,12 +165,8 @@ task_status_immed do_command0( )
|
|||||||
{
|
{
|
||||||
if( vreg_ctr[VREG_C_COMMAND0] & REG_BIT_RESET1_REQ )
|
if( vreg_ctr[VREG_C_COMMAND0] & REG_BIT_RESET1_REQ )
|
||||||
{
|
{
|
||||||
#ifdef _PMIC_TWL_
|
|
||||||
RESETs_ast;
|
|
||||||
#else
|
|
||||||
PM_reset_ast( );
|
PM_reset_ast( );
|
||||||
RESET2_ast;
|
RESET2_ast;
|
||||||
#endif
|
|
||||||
FCRAM_RST_ast;
|
FCRAM_RST_ast;
|
||||||
wait_ms( 5 );
|
wait_ms( 5 );
|
||||||
}
|
}
|
||||||
@ -286,12 +180,8 @@ task_status_immed do_command0( )
|
|||||||
FCRAM_RST_ast;
|
FCRAM_RST_ast;
|
||||||
wait_ms( 5 );
|
wait_ms( 5 );
|
||||||
}
|
}
|
||||||
#ifdef _PMIC_TWL_
|
|
||||||
RESETs_neg;
|
|
||||||
#else
|
|
||||||
PM_reset_neg( );
|
PM_reset_neg( );
|
||||||
RESET2_neg;
|
RESET2_neg;
|
||||||
#endif
|
|
||||||
FCRAM_RST_neg;
|
FCRAM_RST_neg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,23 +218,3 @@ task_status_immed do_command0( )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
|
||||||
CPUからのスリープ要求
|
|
||||||
ポーリングにしました。
|
|
||||||
======================================================== */
|
|
||||||
/*
|
|
||||||
__interrupt void intp0_slp( )
|
|
||||||
{ // SLP
|
|
||||||
if( SLP_REQ ){
|
|
||||||
system_status.pwr_state = SLEEP_TRIG;
|
|
||||||
}else{
|
|
||||||
system_status.pwr_state = ON_TRIG;
|
|
||||||
if( PM_BL_on() == 0 ){
|
|
||||||
renge_task_interval_run_force = 1;
|
|
||||||
iic_mcu_stop();
|
|
||||||
system_status.pwr_state = OFF_TRIG;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
renge_task_interval_run_force = 1;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
322
trunk/task_sys.c
Normal file
322
trunk/task_sys.c
Normal file
@ -0,0 +1,322 @@
|
|||||||
|
#pragma SFR
|
||||||
|
#pragma NOP
|
||||||
|
#pragma HALT
|
||||||
|
#pragma STOP
|
||||||
|
|
||||||
|
#include "incs.h"
|
||||||
|
|
||||||
|
#include "i2c_twl.h"
|
||||||
|
#include "i2c_ctr.h"
|
||||||
|
#include "led.h"
|
||||||
|
#include "accero.h"
|
||||||
|
#include "pm.h"
|
||||||
|
#include "rtc.h"
|
||||||
|
#include "sw.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
static void chk_emergencyExit();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================
|
||||||
|
マイコン内部で必要なもの
|
||||||
|
・省電力に入れる
|
||||||
|
system_status.pwr_state == OFF_TRIG で、このタスクが呼ばれると、
|
||||||
|
省電力モードに入ります
|
||||||
|
======================================================== */
|
||||||
|
void tsk_sys( )
|
||||||
|
{
|
||||||
|
static u8 timeout = 0;
|
||||||
|
|
||||||
|
switch ( system_status.pwr_state )
|
||||||
|
{
|
||||||
|
case OFF: //-------------------------------------------------------
|
||||||
|
// スイッチ操作などで割り込みが発生し、スリープが解除されるとここに来ます。
|
||||||
|
|
||||||
|
switch ( system_status.poweron_reason )
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
// スイッチで電源on
|
||||||
|
if( ( SW_pow_count != 0 ) || ( SW_wifi_count != 0 ) )
|
||||||
|
{
|
||||||
|
timeout = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
timeout += 1;
|
||||||
|
}
|
||||||
|
if( timeout > 127 )
|
||||||
|
{
|
||||||
|
system_status.pwr_state = OFF_TRIG; // スイッチはノイズだった。寝る。
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if( ( SW_pow_count < 3 ) && ( SW_wifi_count < 3 ) )
|
||||||
|
{
|
||||||
|
// もう少しスイッチの様子を見る
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 電源投入
|
||||||
|
system_status.poweron_reason = PWSW;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ( RTC_ALARM ):
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
timeout = 0;
|
||||||
|
|
||||||
|
// 電源投入
|
||||||
|
SW_pow_mask = 1;
|
||||||
|
SW_home_mask = 1;
|
||||||
|
SW_wifi_mask = 1;
|
||||||
|
|
||||||
|
// 電源投入 //
|
||||||
|
iic_mcu_start( );
|
||||||
|
|
||||||
|
// ↓で電池残量ICの起動待ちウェイトなどがあります。
|
||||||
|
PM_init( ); // 電池残量ICの設定
|
||||||
|
|
||||||
|
if( PM_sys_pow_on( ) != ERR_SUCCESS )
|
||||||
|
{ // 電源起動不可エラー
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
iic_mcu_stop( );
|
||||||
|
system_status.pwr_state = OFF;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PM_LCD_vcom_set( ); // LCDの対向電圧値など書き込み
|
||||||
|
#ifdef _PMIC_TWL_
|
||||||
|
PM_TEG_LCD_dis( 0 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if( system_status.poweron_reason == PWSW )
|
||||||
|
{
|
||||||
|
// 電源ボタンでのonの時は、LEDを点灯させる
|
||||||
|
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// とりあえず、LED消灯状態で起動させる
|
||||||
|
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF;
|
||||||
|
// todo?
|
||||||
|
}
|
||||||
|
|
||||||
|
// ここまで来ると、電源投入確定
|
||||||
|
|
||||||
|
LED_init( );
|
||||||
|
|
||||||
|
PU7 = 0b00011101; // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n
|
||||||
|
|
||||||
|
IIC_ctr_Init( ); // とりあえずはここで初期化
|
||||||
|
IIC_twl_Init( );
|
||||||
|
RTC_32k_on( );
|
||||||
|
|
||||||
|
KRM = 0b00000000;
|
||||||
|
|
||||||
|
system_status.poweron_reason = NONE;
|
||||||
|
system_status.pwr_state = ON_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ON_TRIG: //-------------------------------------------------------
|
||||||
|
MK0 = INT_MSK0_RSV; // 何とかする。ON_TRIGがいらない子の気がして
|
||||||
|
MK1 = INT_MSK1_RSV;
|
||||||
|
#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
|
||||||
|
|
||||||
|
system_status.pwr_state = ON;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ON: //---------------------------------------------
|
||||||
|
// PMICによる強制電源断チェック
|
||||||
|
// デバッガがreset1をアサートすることもある。そのときは全部リセット
|
||||||
|
chk_emergencyExit();
|
||||||
|
|
||||||
|
// SLP監視
|
||||||
|
if( SLP_REQ ){
|
||||||
|
system_status.pwr_state = SLEEP_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SLEEP_TRIG: //-------------------------------------
|
||||||
|
PM_VDD_ecoMode();
|
||||||
|
system_status.pwr_state = SLEEP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SLEEP: //------------------------------------------
|
||||||
|
chk_emergencyExit();
|
||||||
|
// スリープから復帰
|
||||||
|
if( !SLP_REQ ){
|
||||||
|
PM_VDD_normMode();
|
||||||
|
wait_ms( 5 ); // tdly_sw
|
||||||
|
|
||||||
|
#ifdef _MODEL_CTR_
|
||||||
|
SLP_ACK = 1;
|
||||||
|
NOP(); // 適当ウェイト
|
||||||
|
NOP();
|
||||||
|
NOP();
|
||||||
|
NOP();
|
||||||
|
SLP_ACK = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
system_status.pwr_state = ON_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OFF_TRIG: //---------------------------------------
|
||||||
|
LED_stop( );
|
||||||
|
IIC_ctr_Stop( );
|
||||||
|
IIC_twl_Stop( );
|
||||||
|
iic_mcu_stop( );
|
||||||
|
|
||||||
|
vreg_ctr[VREG_C_IRQ0] = 0;
|
||||||
|
vreg_ctr[VREG_C_IRQ1] = 0;
|
||||||
|
vreg_ctr[VREG_C_IRQ2] = 0;
|
||||||
|
vreg_ctr[VREG_C_IRQ3] = 0;
|
||||||
|
|
||||||
|
// 電源オン条件の割り込みセット
|
||||||
|
// PWSW KR3 押すとL
|
||||||
|
// BG24 KR4
|
||||||
|
// ふた開け INTP5 閉じるとL
|
||||||
|
// ACアダプタ INTP4 アダプタありでL
|
||||||
|
// RTC
|
||||||
|
|
||||||
|
#ifdef _PMIC_TWL_
|
||||||
|
PM_TEG_LCD_dis( 1 );
|
||||||
|
#endif
|
||||||
|
PM_sys_pow_off( );
|
||||||
|
|
||||||
|
// pullup_off(); ↓
|
||||||
|
{
|
||||||
|
PU5 = 0b00000011; // PM_CHG,PM_CHGERR
|
||||||
|
PU7 = 0b00011001; // SW_WiFi,PWSWI,PM_EXTTDC
|
||||||
|
}
|
||||||
|
|
||||||
|
KRM = ( KR_SW_POW ); // Mask ではなく、Modeなのだそうだ。紛らわしい
|
||||||
|
// intp20系は後ほど
|
||||||
|
MK0 = ~( INT_MSK0_EXTDC );
|
||||||
|
MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCALARM | INT_MSK1_RTCINTVAL );
|
||||||
|
MK2L = 0b11111111;
|
||||||
|
|
||||||
|
IF0 = 0;
|
||||||
|
IF1 = 0;
|
||||||
|
IF2 = 0;
|
||||||
|
|
||||||
|
timeout = 0;
|
||||||
|
|
||||||
|
system_status.pwr_state = BT_CHARGE;
|
||||||
|
// no break //
|
||||||
|
|
||||||
|
case BT_CHARGE:
|
||||||
|
if( !PM_EXTDC_n )
|
||||||
|
{
|
||||||
|
// アダプタ有り:充電温度監視
|
||||||
|
BT_TEMP_P = 1;
|
||||||
|
|
||||||
|
// 電源on?
|
||||||
|
if( ( SW_pow_count > 3 ) || ( SW_wifi_count > 3 )
|
||||||
|
|| ( system_status.poweron_reason == RTC_ALARM ) )
|
||||||
|
{
|
||||||
|
system_status.pwr_state = OFF; // 若干抵抗有るがこれでよい
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
KRMK = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 省電力へ移行
|
||||||
|
BT_TEMP_P = 0;
|
||||||
|
while( RWST )
|
||||||
|
{;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 割り込み待ちで寝る //
|
||||||
|
RTCIMK = 1;
|
||||||
|
STOP( );
|
||||||
|
RTCIMK = 0;
|
||||||
|
// 起きる //
|
||||||
|
|
||||||
|
// 起きる条件は
|
||||||
|
// ・KeyReturn割り込み(電源ボたん)
|
||||||
|
// ・RTCアラーム
|
||||||
|
// ・アダプタ挿抜
|
||||||
|
system_status.pwr_state = OFF; // 若干抵抗有るがこれでよい
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
KRMK = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
while( 1 )
|
||||||
|
{
|
||||||
|
NOP( );
|
||||||
|
// あり得ないステート
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************//**
|
||||||
|
PMICが電源異常で止めたか確認
|
||||||
|
**********************************************************/
|
||||||
|
static void chk_emergencyExit(){
|
||||||
|
if( !RESET1_n )
|
||||||
|
{
|
||||||
|
if( PM_chk_LDSW( ) == 0 )
|
||||||
|
{
|
||||||
|
// PMICが異常終了判断をした
|
||||||
|
system_status.pwr_state = OFF_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// デバッガなりがリセットをかけた
|
||||||
|
vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ;
|
||||||
|
renge_task_immed_add( do_command0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================
|
||||||
|
CPUからのスリープ要求
|
||||||
|
ポーリングにしました。
|
||||||
|
======================================================== */
|
||||||
|
/*
|
||||||
|
__interrupt void intp0_slp( )
|
||||||
|
{ // SLP
|
||||||
|
if( SLP_REQ ){
|
||||||
|
system_status.pwr_state = SLEEP_TRIG;
|
||||||
|
}else{
|
||||||
|
system_status.pwr_state = ON_TRIG;
|
||||||
|
if( PM_BL_on() == 0 ){
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
iic_mcu_stop();
|
||||||
|
system_status.pwr_state = OFF_TRIG;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
*/
|
||||||
@ -74,8 +74,6 @@
|
|||||||
#define RESET1_n ( P0.0 )
|
#define RESET1_n ( P0.0 )
|
||||||
#define RESET1_ast { P0.0 = 0; PM0.0 = 0; }
|
#define RESET1_ast { P0.0 = 0; PM0.0 = 0; }
|
||||||
#define RESET1_neg { PM0.0 = 1; }
|
#define RESET1_neg { PM0.0 = 1; }
|
||||||
#define RESETs_ast { P0 &= ~0x03; PM0 &= ~0x03; }
|
|
||||||
#define RESETs_neg { PM0.0 = 1; P0.1 = 1; }
|
|
||||||
#define RESET2_ast { P0.1 = 0; }
|
#define RESET2_ast { P0.1 = 0; }
|
||||||
#define RESET2_neg { P0.1 = 1; }
|
#define RESET2_neg { P0.1 = 1; }
|
||||||
|
|
||||||
@ -99,7 +97,7 @@
|
|||||||
#define SND_DEPOP P7.7
|
#define SND_DEPOP P7.7
|
||||||
|
|
||||||
// PM
|
// PM
|
||||||
#define PM_EXTDC P7.0
|
#define PM_EXTDC_n P7.0
|
||||||
// INTP7
|
// INTP7
|
||||||
//#define BT_TEMP P15.0
|
//#define BT_TEMP P15.0
|
||||||
// ANI8
|
// ANI8
|
||||||
@ -107,19 +105,17 @@
|
|||||||
// ANI9
|
// ANI9
|
||||||
#define BT_DET_P P1.6
|
#define BT_DET_P P1.6
|
||||||
#define BT_TEMP_P P1.7
|
#define BT_TEMP_P P1.7
|
||||||
|
|
||||||
|
|
||||||
|
// <20>[“d‚¹‚æ(out)
|
||||||
#ifndef _PMIC_CTR_
|
#ifndef _PMIC_CTR_
|
||||||
#define BT_CHG_EN P4.2
|
#define BT_CHG_EN_n P4.2
|
||||||
#else
|
#else
|
||||||
#define BT_CHG_EN P4.3
|
#define BT_CHG_EN_n P4.3
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BT_CHG_ERR_n P5.0
|
// <20>[“d’†(in)
|
||||||
#define BT_CHG_n P5.1
|
#define BT_CHG_n P5.1
|
||||||
#ifdef _PMIC_TWL_
|
|
||||||
#define PM_BT_AUTH P12.1
|
|
||||||
#else
|
|
||||||
#define PM_BT_AUTH P4.2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SW_WIFI_n P7.4
|
#define SW_WIFI_n P7.4
|
||||||
// KR4
|
// KR4
|
||||||
@ -202,27 +198,27 @@
|
|||||||
#define KR_SW_WIFI ( 1 << 4 )
|
#define KR_SW_WIFI ( 1 << 4 )
|
||||||
|
|
||||||
|
|
||||||
#define INT_MSK0_IIC_M_DMA ( 0b0001000000000000 )
|
#define INT_MSK0_IIC_M_DMA 0b0001000000000000
|
||||||
#define INT_MSK0_SHELL ( 0b0000000010000000 )
|
#define INT_MSK0_SHELL 0b0000000010000000
|
||||||
#define INT_MSK0_EXTDC ( 0b0000000001000000 )
|
#define INT_MSK0_EXTDC 0b0000000001000000
|
||||||
//#define INT_MSK0_SLP ( 0b0000000000000100 )
|
//#define INT_MSK0_SLP 0b0000000000000100 )
|
||||||
//#define INT_MSK0_RSV ( 0b1110111100111011 )
|
//#define INT_MSK0_RSV 0b1110111100111011 )
|
||||||
#define INT_MSK0_RSV ( 0b1110111100111111 )
|
#define INT_MSK0_RSV 0b1110111100111111
|
||||||
|
|
||||||
#define INT_MSK1_KR ( 0b0000100000000000 )
|
#define INT_MSK1_KR 0b0000100000000000
|
||||||
#define INT_MSK1_RTCINTVAL ( 0b0000010000000000 )
|
#define INT_MSK1_RTCINTVAL 0b0000010000000000
|
||||||
#define INT_MSK1_RTCALARM ( 0b0000001000000000 )
|
#define INT_MSK1_RTCALARM 0b0000001000000000
|
||||||
#define INT_MSK1_ADC ( 0b0000000100000000 )
|
#define INT_MSK1_ADC 0b0000000100000000
|
||||||
#define INT_MSK1_IIC_CTR ( 0b0000000000001000 )
|
#define INT_MSK1_IIC_CTR 0b0000000000001000
|
||||||
#define INT_MSK1_IIC_MCU ( 0b0000000000000001 )
|
#define INT_MSK1_IIC_MCU 0b0000000000000001
|
||||||
#define INT_MSK1_RSV ( 0b1111000011110110 )
|
#define INT_MSK1_RSV 0b1111000011110110
|
||||||
|
|
||||||
#define INT_MSK2_WIFI_TX_KE3 ( 0b00010000 )
|
#define INT_MSK2_WIFI_TX_KE3 0b00010000
|
||||||
#define INT_MSK2L_RSV ( 0b11101111 )
|
#define INT_MSK2L_RSV 0b11101111
|
||||||
|
|
||||||
#define INT_MSK2_IIC_TWL ( 0b0000000100000000 )
|
#define INT_MSK2_IIC_TWL ( 0b0000000100000000 )
|
||||||
#define INT_MSK2_WIFI_TX_BSR ( 0b0000010000000000 )
|
#define INT_MSK2_WIFI_TX_BSR ( 0b0000010000000000 )
|
||||||
#define INT_MSK2_CODEC_PMIRQ ( 0b0000000000001000 )
|
#define INT_MSK2_CODEC_PMIRQ ( 0b0000000000001000 )
|
||||||
#define INT_MSK2_RSV ( 0b1111101111110111 )
|
#define INT_MSK2_RSV 0b1111101111110111
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -220,10 +220,38 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
|||||||
// I2C仮想レジスタから読みます。
|
// I2C仮想レジスタから読みます。
|
||||||
// 引数 adrs 外から見たときの、アドレス
|
// 引数 adrs 外から見たときの、アドレス
|
||||||
// 戻り xx データ
|
// 戻り xx データ
|
||||||
// 存在しないアドレスにアクセスした場合、戻り値は0x5A
|
|
||||||
u8 vreg_ctr_read( u8 adrs )
|
u8 vreg_ctr_read( u8 adrs )
|
||||||
{
|
{
|
||||||
if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) )
|
u8 dat;
|
||||||
|
|
||||||
|
// 割り込みフラグはリードでクリア
|
||||||
|
if( adrs == VREG_C_IRQ0 )
|
||||||
|
{
|
||||||
|
dat = vreg_ctr[VREG_C_IRQ0];
|
||||||
|
vreg_ctr[VREG_C_IRQ0] = 0;
|
||||||
|
return dat;
|
||||||
|
}
|
||||||
|
else if( adrs == VREG_C_IRQ1 )
|
||||||
|
{
|
||||||
|
dat = vreg_ctr[VREG_C_IRQ1];
|
||||||
|
vreg_ctr[VREG_C_IRQ1] = 0;
|
||||||
|
return dat;
|
||||||
|
}
|
||||||
|
else if( adrs == VREG_C_IRQ2 )
|
||||||
|
{
|
||||||
|
dat = vreg_ctr[VREG_C_IRQ2];
|
||||||
|
vreg_ctr[VREG_C_IRQ2] = 0;
|
||||||
|
return dat;
|
||||||
|
}
|
||||||
|
else if( adrs == VREG_C_IRQ3 )
|
||||||
|
{
|
||||||
|
dat = vreg_ctr[VREG_C_IRQ3];
|
||||||
|
vreg_ctr[VREG_C_IRQ3] = 0;
|
||||||
|
return dat;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RTCは読み出し途中に繰り上がるのを避けるため
|
||||||
|
else if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) )
|
||||||
{
|
{
|
||||||
get_rtc( );
|
get_rtc( );
|
||||||
}
|
}
|
||||||
@ -236,13 +264,4 @@ u8 vreg_ctr_read( u8 adrs )
|
|||||||
// I2C仮想レジスタから読まれて何かするレジスタ
|
// I2C仮想レジスタから読まれて何かするレジスタ
|
||||||
void vreg_ctr_after_read( u8 adrs )
|
void vreg_ctr_after_read( u8 adrs )
|
||||||
{
|
{
|
||||||
|
|
||||||
// リードがトリガで何かをする↓
|
|
||||||
// 割り込みビットのクリア
|
|
||||||
if( adrs == VREG_C_IRQ3 )
|
|
||||||
{
|
|
||||||
vreg_ctr[VREG_C_IRQ0] = vreg_ctr[VREG_C_IRQ1] =
|
|
||||||
vreg_ctr[VREG_C_IRQ2] = vreg_ctr[VREG_C_IRQ3] = 0;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,6 +56,9 @@
|
|||||||
#define REG_BIT_POW_SUPPLY ( 1 << 3 )
|
#define REG_BIT_POW_SUPPLY ( 1 << 3 )
|
||||||
#define REG_BIT_ST_SHELL_CLOSED ( 1 << 1 )
|
#define REG_BIT_ST_SHELL_CLOSED ( 1 << 1 )
|
||||||
|
|
||||||
|
// VREG_C_STATUS_1
|
||||||
|
#define REG_BIT_GASGAUGE_ERR ( 1 << 0 )
|
||||||
|
|
||||||
|
|
||||||
// VREG_C_COMMAND0
|
// VREG_C_COMMAND0
|
||||||
#define REG_BIT_CMD_LCD_ON ( 1 << 7 )
|
#define REG_BIT_CMD_LCD_ON ( 1 << 7 )
|
||||||
@ -152,7 +155,7 @@ enum VREG_C
|
|||||||
VREG_C_BT_REMAIN,
|
VREG_C_BT_REMAIN,
|
||||||
VREG_C_BT_TEMP,
|
VREG_C_BT_TEMP,
|
||||||
|
|
||||||
VREG_C_STATUS_X = 0x0E,
|
VREG_C_STATUS_1 = 0x0E,
|
||||||
VREG_C_STATUS = 0x0F,
|
VREG_C_STATUS = 0x0F,
|
||||||
|
|
||||||
VREG_C_IRQ0 = 0x10,
|
VREG_C_IRQ0 = 0x10,
|
||||||
|
|||||||
@ -78,13 +78,13 @@ enum REG_TWL_ADRS_INT
|
|||||||
// REG_TWL_INT_ADRS_ADC_CALIB_VALUE,
|
// REG_TWL_INT_ADRS_ADC_CALIB_VALUE,
|
||||||
// REG_TWL_INT_ADRS_POWER_LED,
|
// REG_TWL_INT_ADRS_POWER_LED,
|
||||||
REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77
|
REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77
|
||||||
// REG_TWL_INT_ADRS_TEMP1,
|
REG_TWL_INT_ADRS_TEMP1,
|
||||||
// REG_TWL_INT_ADRS_TEMP2,
|
REG_TWL_INT_ADRS_TEMP2,
|
||||||
// REG_TWL_INT_ADRS_TEMP3,
|
REG_TWL_INT_ADRS_TEMP3,
|
||||||
// REG_TWL_INT_ADRS_TEMP4,
|
REG_TWL_INT_ADRS_TEMP4,
|
||||||
// REG_TWL_INT_ADRS_TEMP5,
|
REG_TWL_INT_ADRS_TEMP5,
|
||||||
// REG_TWL_INT_ADRS_TEMP6,
|
REG_TWL_INT_ADRS_TEMP6,
|
||||||
// REG_TWL_INT_ADRS_TEMP7,
|
REG_TWL_INT_ADRS_TEMP7,
|
||||||
// REG_TWL_INT_ADRS_TIME_PWSW_DELAY,
|
// REG_TWL_INT_ADRS_TIME_PWSW_DELAY,
|
||||||
// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD
|
// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD
|
||||||
_REG_TWL_INT_ADRS_ENDMARK,
|
_REG_TWL_INT_ADRS_ENDMARK,
|
||||||
|
|||||||
@ -1,19 +1,25 @@
|
|||||||
C:\WINDOWS\system32\cmd.exe /c echo touch magic.c
|
C:\WINDOWS\system32\cmd.exe /c echo touch magic.c
|
||||||
touch magic.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 -qvjl1wt -sainter_asm -zp -no pm.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 -qvjl1wt -sainter_asm -zp -no i2c_ctr.c
|
||||||
pm.c(210) : CC78K0R warning W0745: Expected function prototype
|
Compilation complete, 0 error(s) and 0 warning(s) found.
|
||||||
pm.c(214) : CC78K0R warning W0401: Conversion may lose significant digits
|
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\i2c_ctr.asm
|
||||||
pm.c(218) : CC78K0R warning W0401: Conversion may lose significant digits
|
|
||||||
pm.c(223) : CC78K0R warning W0510: Pointer mismatch in function 'iic_mcu_write'
|
|
||||||
pm.c(617) : CC78K0R warning W0401: Conversion may lose significant digits
|
|
||||||
Compilation complete, 0 error(s) and 5 warning(s) found.
|
|
||||||
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\pm.asm
|
|
||||||
Assembly complete, 0 error(s) and 0 warning(s) found.
|
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 -kp -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 ini_VECT.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel tasks.rel adc.rel renge.rel tasks_sys.rel accero.rel self_flash.rel reboot.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 -qvjl1wt -sainter_asm -zp -no vreg_ctr.c
|
||||||
|
vreg_ctr.c(59) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||||
|
vreg_ctr.c(102) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||||
|
vreg_ctr.c(103) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||||
|
vreg_ctr.c(105) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||||
|
vreg_ctr.c(107) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||||
|
vreg_ctr.c(108) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||||
|
vreg_ctr.c(110) : CC78K0R warning W0401: Conversion may lose significant digits
|
||||||
|
Compilation complete, 0 error(s) and 7 warning(s) found.
|
||||||
|
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\vreg_ctr.asm
|
||||||
|
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 -kp -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 ini_VECT.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel reboot.rel sw.rel task_debug.rel task_misc.rel task_sys.rel
|
||||||
Link complete, 0 error(s) and 0 warning(s) found.
|
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
|
"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.
|
Object Conversion Complete, 0 error(s) and 0 warning(s) found.
|
||||||
C:\WINDOWS\system32\cmd.exe /c ruby C:\Cygwin\home\fujita_ryohei\ctr\nec_s_2_bsrbin.rb bsr.hex
|
C:\WINDOWS\system32\cmd.exe /c ruby C:\Cygwin\home\fujita_ryohei\ctr\nec_s_2_bsrbin.rb bsr.hex
|
||||||
C:/Cygwin/home/fujita_ryohei/ctr/nec_s_2_bsrbin.rb:2: warning: variable $KCODE is no longer effective; ignored
|
C:/Cygwin/home/fujita_ryohei/ctr/nec_s_2_bsrbin.rb:2: warning: variable $KCODE is no longer effective; ignored
|
||||||
|
|
||||||
Build Total error(s) : 0 Total warning(s) : 5
|
Build Total error(s) : 0 Total warning(s) : 7
|
||||||
|
|||||||
@ -78,10 +78,10 @@ Symbol Type=OFF
|
|||||||
Language=C
|
Language=C
|
||||||
Kanji=SJIS
|
Kanji=SJIS
|
||||||
[Source]
|
[Source]
|
||||||
Geometry=104, 38, 981, 857
|
Geometry=286, 184, 981, 857
|
||||||
Window=Normal
|
Window=Normal
|
||||||
DispStart=264
|
DispStart=40
|
||||||
CaretPos=265,0
|
CaretPos=86,0
|
||||||
Mode=Normal
|
Mode=Normal
|
||||||
DispFile=
|
DispFile=
|
||||||
Address1=
|
Address1=
|
||||||
@ -140,10 +140,10 @@ SaveStart=
|
|||||||
SaveEnd=
|
SaveEnd=
|
||||||
Accumulative=ON
|
Accumulative=ON
|
||||||
[Assemble]
|
[Assemble]
|
||||||
Geometry=59, 244, 600, 738
|
Geometry=66, 131, 600, 738
|
||||||
Window=Normal
|
Window=Normal
|
||||||
DispStart=14961
|
DispStart=10043
|
||||||
CaretPos=14961,27
|
CaretPos=10043,27
|
||||||
Address1=
|
Address1=
|
||||||
Address2=
|
Address2=
|
||||||
Address3=
|
Address3=
|
||||||
@ -251,7 +251,7 @@ Destination=0
|
|||||||
[I/O Port]
|
[I/O Port]
|
||||||
Line=0
|
Line=0
|
||||||
[Stack]
|
[Stack]
|
||||||
Geometry=839, 787, 400, 300
|
Geometry=906, 793, 400, 300
|
||||||
Window=Normal
|
Window=Normal
|
||||||
Boundary=13762687
|
Boundary=13762687
|
||||||
Mode=Proper
|
Mode=Proper
|
||||||
@ -876,11 +876,11 @@ Register Bank=0
|
|||||||
RP0=1
|
RP0=1
|
||||||
RP1=1
|
RP1=1
|
||||||
RP2=1
|
RP2=1
|
||||||
RP3=3
|
RP3=1
|
||||||
PC=1
|
PC=1
|
||||||
SP=1
|
SP=1
|
||||||
PSW=1
|
PSW=1
|
||||||
ES=3
|
ES=1
|
||||||
CS=1
|
CS=1
|
||||||
[Event Manager]
|
[Event Manager]
|
||||||
Geometry=0, 0, 0, 0
|
Geometry=0, 0, 0, 0
|
||||||
@ -960,38 +960,52 @@ Count=0
|
|||||||
Geometry=1138, 6, 440, 688
|
Geometry=1138, 6, 440, 688
|
||||||
Window=Normal
|
Window=Normal
|
||||||
Boundary=13762700
|
Boundary=13762700
|
||||||
0=.hist_bt_temp,D,N,A,+,1
|
0=.mk2h,P,S,A,+,1
|
||||||
1=.ADCRH,P,S,A,+,1
|
1=.mk2l,P,S,A,+,1
|
||||||
2=.vreg_ctr,P,N,A,+,1
|
2=.MK1,P,S,A,+,1
|
||||||
3=.vreg_ctr[11],D,N,A,+,1
|
3=.MK2,P,S,A,+,1
|
||||||
4=.skip,P,N,A,+,1
|
4=.IICAMK1,P,S,A,+,1
|
||||||
5=.temperature,P,N,A,+,1
|
5=.IICAIF1,P,S,A,+,1
|
||||||
6=.raw_adc_temperature,P,N,A,+,1
|
6=.IICAMK0,P,S,A,+,1
|
||||||
7=.system_status.pwr_state,P,N,A,+,1
|
7=.IICAIF0,P,S,A,+,1
|
||||||
Line=8
|
8=.tasks,P,N,A,+,1
|
||||||
|
9=.RTCIIF,P,S,A,+,1
|
||||||
|
10=.RTCIMK,P,S,A,+,1
|
||||||
|
11=.task_id,P,N,A,+,1
|
||||||
|
12=.system_status.poweron_reason,P,N,A,+,1
|
||||||
|
13=.ADCRH,P,S,A,+,1
|
||||||
|
14=.hist_bt_temp,P,N,A,+,1
|
||||||
|
15=.raw_adc_temperature,P,N,A,+,1
|
||||||
|
16=.system_status.pwr_state,P,N,A,+,1
|
||||||
|
17=.vreg_ctr[11],D,N,A,+,1
|
||||||
|
18=.newrcomp,D,N,A,+,1
|
||||||
|
19=.temperature,P,N,A,+,1
|
||||||
|
20=.temp_co_up,P,N,A,+,1
|
||||||
|
21=.temp_co_dn,P,N,A,+,1
|
||||||
|
Line=22
|
||||||
[Quick Watch]
|
[Quick Watch]
|
||||||
0=pm12,P,A,1
|
0=PM7.3,P,A,1
|
||||||
1=vreg_twl,P,A,1
|
1=IMMED_RSV_TASKS_NUM,P,A,1
|
||||||
2=PMK21,P,A,1
|
2=task_id,P,A,1
|
||||||
3=IFP21,P,A,1
|
3=tasks,P,A,1
|
||||||
4=PIF21,P,A,1
|
4=RTCIMK,P,A,1
|
||||||
5=skip,P,A,1
|
5=RTCIIF,P,A,1
|
||||||
6=vreg_ctr[11],P,A,1
|
6=IICA0IF,P,A,1
|
||||||
7=ADCRH,P,A,1
|
7=IICAIF0,P,A,1
|
||||||
8=hist_tune,P,A,1
|
8=IICAIF1,P,A,1
|
||||||
9=hist_bt_temp,P,A,1
|
9=IICAMK1,P,A,1
|
||||||
10=vreg_ctr,P,A,1
|
10=IICAMK0,P,A,1
|
||||||
11=t1,P,A,1
|
11=mk2,P,A,1
|
||||||
12=t2,P,A,1
|
12=mk2l,P,A,1
|
||||||
13=t3,P,A,1
|
13=mk2h,P,A,1
|
||||||
14=raw_adc_temperature,P,A,1
|
14=MK2,P,A,1
|
||||||
15=temperature,P,A,1
|
15=MK1,P,A,1
|
||||||
[Software Break]
|
[Software Break]
|
||||||
Geometry=51, 459, 500, 200
|
Geometry=14, 896, 500, 200
|
||||||
Window=Normal
|
Window=Normal
|
||||||
Width=150 30 200 100
|
Width=150 30 200 100
|
||||||
Name0=Swb00001
|
Name0=Swb00002
|
||||||
Address0=pm.c#_PM_bt_temp_update+0x3d
|
Address0=i2c_ctr.c#_int_iic_ctr+0x17
|
||||||
Window0=ASM
|
Window0=ASM
|
||||||
Status0=ON
|
Status0=ON
|
||||||
Count=1
|
Count=1
|
||||||
|
|||||||
@ -514,61 +514,6 @@ DefaultMode2=1
|
|||||||
DefaultMode3=1
|
DefaultMode3=1
|
||||||
DefaultMode4=1
|
DefaultMode4=1
|
||||||
DefaultMode5=1
|
DefaultMode5=1
|
||||||
[SrcFile]
|
|
||||||
Source1=loader.c
|
|
||||||
Source2=pm.c
|
|
||||||
Source3=i2c_ctr.c
|
|
||||||
Source4=main.c
|
|
||||||
Source5=magic.c
|
|
||||||
Source6=WDT.c
|
|
||||||
Source7=i2c_mcu.c
|
|
||||||
Source8=i2c_twl.c
|
|
||||||
Source9=ini_VECT.c
|
|
||||||
Source10=led.c
|
|
||||||
Source11=rtc.c
|
|
||||||
Source12=vreg_ctr.c
|
|
||||||
Source13=vreg_twl.c
|
|
||||||
Source14=tasks.c
|
|
||||||
Source15=adc.c
|
|
||||||
Source16=renge\renge.c
|
|
||||||
Source17=tasks_sys.c
|
|
||||||
Source18=accero.c
|
|
||||||
Source19=self_flash.c
|
|
||||||
Source20=reboot.c
|
|
||||||
[IncFile]
|
|
||||||
Include1=incs_loader.h
|
|
||||||
Include2=jhl_defs.h
|
|
||||||
Include3=user_define.h
|
|
||||||
Include4=config.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=loader.h
|
|
||||||
Include11=i2c_mcu.h
|
|
||||||
Include12=WDT.h
|
|
||||||
Include13=fsl.h
|
|
||||||
Include14=fsl_user.h
|
|
||||||
Include15=i2c_ctr.h
|
|
||||||
Include16=pm.h
|
|
||||||
Include17=rtc.h
|
|
||||||
Include18=adc.h
|
|
||||||
Include19=led.h
|
|
||||||
Include20=incs.h
|
|
||||||
Include21=vreg_twl.h
|
|
||||||
Include22=accero.h
|
|
||||||
Include23=i2c_twl_defs.h
|
|
||||||
Include24=renge\renge_task_intval.h
|
|
||||||
Include25=i2c_twl.h
|
|
||||||
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
|
||||||
Include27=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
|
||||||
Include28=reboot.h
|
|
||||||
[ToolSet]
|
|
||||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
|
||||||
Tool1=CC78K0R|W2.10
|
|
||||||
Tool2=RA78K0R|W1.31
|
|
||||||
Tool3=ID78K0R-QB|V3.60
|
|
||||||
[Options.CC78K0R 0]
|
[Options.CC78K0R 0]
|
||||||
Version=210
|
Version=210
|
||||||
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||||
@ -1035,3 +980,61 @@ VfiFileBoot0=
|
|||||||
VfiFileBoot1=boot.vfi
|
VfiFileBoot1=boot.vfi
|
||||||
VF78K0Rchk=0
|
VF78K0Rchk=0
|
||||||
VF78K0Rvs=
|
VF78K0Rvs=
|
||||||
|
[SrcFile]
|
||||||
|
Source1=loader.c
|
||||||
|
Source2=pm.c
|
||||||
|
Source3=i2c_ctr.c
|
||||||
|
Source4=main.c
|
||||||
|
Source5=magic.c
|
||||||
|
Source6=WDT.c
|
||||||
|
Source7=i2c_mcu.c
|
||||||
|
Source8=i2c_twl.c
|
||||||
|
Source9=ini_VECT.c
|
||||||
|
Source10=led.c
|
||||||
|
Source11=rtc.c
|
||||||
|
Source12=vreg_ctr.c
|
||||||
|
Source13=vreg_twl.c
|
||||||
|
Source14=adc.c
|
||||||
|
Source15=renge\renge.c
|
||||||
|
Source16=accero.c
|
||||||
|
Source17=self_flash.c
|
||||||
|
Source18=reboot.c
|
||||||
|
Source19=sw.c
|
||||||
|
Source20=task_debug.c
|
||||||
|
Source21=task_misc.c
|
||||||
|
Source22=task_sys.c
|
||||||
|
[IncFile]
|
||||||
|
Include1=incs_loader.h
|
||||||
|
Include2=jhl_defs.h
|
||||||
|
Include3=user_define.h
|
||||||
|
Include4=config.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=loader.h
|
||||||
|
Include11=i2c_mcu.h
|
||||||
|
Include12=WDT.h
|
||||||
|
Include13=fsl.h
|
||||||
|
Include14=fsl_user.h
|
||||||
|
Include15=i2c_ctr.h
|
||||||
|
Include16=pm.h
|
||||||
|
Include17=rtc.h
|
||||||
|
Include18=adc.h
|
||||||
|
Include19=led.h
|
||||||
|
Include20=incs.h
|
||||||
|
Include21=vreg_twl.h
|
||||||
|
Include22=accero.h
|
||||||
|
Include23=i2c_twl_defs.h
|
||||||
|
Include24=renge\renge_task_intval.h
|
||||||
|
Include25=i2c_twl.h
|
||||||
|
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||||
|
Include27=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||||
|
Include28=reboot.h
|
||||||
|
Include29=sw.h
|
||||||
|
[ToolSet]
|
||||||
|
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||||
|
Tool1=CC78K0R|W2.10
|
||||||
|
Tool2=RA78K0R|W1.31
|
||||||
|
Tool3=ID78K0R-QB|V3.60
|
||||||
|
|||||||
@ -15,17 +15,17 @@ OpenFile8=loader.c,0,255,224,1438,850,14,85,0,0
|
|||||||
OpenFile9=main.c,0,124,87,1368,844,0,45,0,0
|
OpenFile9=main.c,0,124,87,1368,844,0,45,0,0
|
||||||
OpenFile10=vreg_ctr.c,0,345,273,1060,932,14,23,0,0
|
OpenFile10=vreg_ctr.c,0,345,273,1060,932,14,23,0,0
|
||||||
OpenFile11=reboot.c,0,110,110,1354,867,5,14,14,0
|
OpenFile11=reboot.c,0,110,110,1354,867,5,14,14,0
|
||||||
OpenFile12=config.h,0,374,323,1618,1080,15,18,22,0
|
OpenFile12=vreg_twl.c,0,314,110,1558,867,74,90,75,0
|
||||||
OpenFile13=vreg_twl.c,0,314,110,1558,867,74,90,75,0
|
OpenFile13=renge\renge.c,0,154,154,1398,911,0,264,0,0
|
||||||
OpenFile14=renge\renge.c,0,154,154,1398,911,0,264,0,0
|
OpenFile14=adc.c,0,275,163,1065,610,0,145,0,0
|
||||||
OpenFile15=adc.c,0,275,163,1065,610,0,145,0,0
|
OpenFile15=led.c,0,286,286,1469,912,45,278,46,0
|
||||||
OpenFile16=led.c,0,286,286,1469,912,12,323,0,0
|
OpenFile16=pm.c,0,457,302,1701,1059,4,496,14,0
|
||||||
OpenFile17=ProjectWindow
|
OpenFile17=i2c_ctr.c,0,329,42,1171,976,0,56,0,0
|
||||||
|
OpenFile18=ProjectWindow
|
||||||
PrjPos=0,2,754,3,253
|
PrjPos=0,2,754,3,253
|
||||||
OpenFile18=i2c_ctr.c,0,329,42,1171,976,9,101,9,0
|
OpenFile19=OutputWindow
|
||||||
OpenFile19=pm.c,0,457,302,1701,1059,0,216,0,0
|
|
||||||
OpenFile20=OutputWindow
|
|
||||||
OutputPos=0,360,1128,478,1503
|
OutputPos=0,360,1128,478,1503
|
||||||
|
OpenFile20=config.h,0,263,342,1507,1099,15,15,15,0
|
||||||
ActivePRJ=yav_mcu_bsr.prj
|
ActivePRJ=yav_mcu_bsr.prj
|
||||||
[ProjectWindow]
|
[ProjectWindow]
|
||||||
ProjectWindowDispType=0
|
ProjectWindowDispType=0
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
[SdbInfo]
|
[SdbInfo]
|
||||||
Ver=5
|
Ver=5
|
||||||
[loader.c]
|
[loader.c]
|
||||||
T=4ae7c536
|
T=4af2385f
|
||||||
1=incs_loader.h
|
1=incs_loader.h
|
||||||
2=fsl.h
|
2=fsl.h
|
||||||
3=fsl_user.h
|
3=fsl_user.h
|
||||||
@ -11,16 +11,16 @@ T=4ae7c536
|
|||||||
7=rtc.h
|
7=rtc.h
|
||||||
8=reboot.h
|
8=reboot.h
|
||||||
[pm.c]
|
[pm.c]
|
||||||
T=4aee97ce
|
T=4af37d73
|
||||||
1=incs.h
|
1=incs.h
|
||||||
2=adc.h
|
2=adc.h
|
||||||
3=led.h
|
3=led.h
|
||||||
4=pm.h
|
4=pm.h
|
||||||
[i2c_ctr.c]
|
[i2c_ctr.c]
|
||||||
T=4ae78e76
|
T=4af2327f
|
||||||
1=incs.h
|
1=incs.h
|
||||||
[main.c]
|
[main.c]
|
||||||
T=4aee391d
|
T=4af281ee
|
||||||
1=incs.h
|
1=incs.h
|
||||||
2=WDT.h
|
2=WDT.h
|
||||||
3=rtc.h
|
3=rtc.h
|
||||||
@ -34,7 +34,7 @@ T=4ad3e9ff
|
|||||||
T=4aca8ef0
|
T=4aca8ef0
|
||||||
1=incs_loader.h
|
1=incs_loader.h
|
||||||
[i2c_mcu.c]
|
[i2c_mcu.c]
|
||||||
T=4aee94fe
|
T=4af25f2b
|
||||||
1=incs.h
|
1=incs.h
|
||||||
2=i2c_mcu.h
|
2=i2c_mcu.h
|
||||||
[i2c_twl.c]
|
[i2c_twl.c]
|
||||||
@ -45,11 +45,11 @@ T=4add157f
|
|||||||
T=4ae986c0
|
T=4ae986c0
|
||||||
1=config.h
|
1=config.h
|
||||||
[led.c]
|
[led.c]
|
||||||
T=4ae991e4
|
T=4af37126
|
||||||
1=incs.h
|
1=incs.h
|
||||||
2=led.h
|
2=led.h
|
||||||
[rtc.c]
|
[rtc.c]
|
||||||
T=4adee281
|
T=4af0e439
|
||||||
1=incs.h
|
1=incs.h
|
||||||
[vreg_ctr.c]
|
[vreg_ctr.c]
|
||||||
T=4ae6477f
|
T=4ae6477f
|
||||||
@ -60,45 +60,30 @@ T=4ae6477f
|
|||||||
5=accero.h
|
5=accero.h
|
||||||
6=pm.h
|
6=pm.h
|
||||||
[vreg_twl.c]
|
[vreg_twl.c]
|
||||||
T=4ae916d9
|
T=4af37c2b
|
||||||
1=incs.h
|
1=incs.h
|
||||||
2=jhl_defs.h
|
2=jhl_defs.h
|
||||||
3=vreg_twl.h
|
3=vreg_twl.h
|
||||||
4=vreg_ctr.h
|
4=vreg_ctr.h
|
||||||
[tasks.c]
|
|
||||||
T=4aee6c62
|
|
||||||
1=incs.h
|
|
||||||
2=renge\renge.h
|
|
||||||
3=pm.h
|
|
||||||
4=accero.h
|
|
||||||
[adc.c]
|
[adc.c]
|
||||||
T=4aea78e3
|
T=4af27e29
|
||||||
1=incs.h
|
1=incs.h
|
||||||
2=adc.h
|
2=adc.h
|
||||||
3=pm.h
|
3=pm.h
|
||||||
4=led.h
|
4=led.h
|
||||||
[renge\renge.c]
|
[renge\renge.c]
|
||||||
T=4ae94be1
|
T=4af291b9
|
||||||
1=renge\renge_defs.h
|
1=renge\renge_defs.h
|
||||||
2=renge\renge_task_intval.h
|
2=renge\renge_task_intval.h
|
||||||
3=renge\renge_task_immediate.h
|
3=renge\renge_task_immediate.h
|
||||||
4=WDT.h
|
4=WDT.h
|
||||||
5=bsr_system.h
|
5=bsr_system.h
|
||||||
[tasks_sys.c]
|
|
||||||
T=4aea41aa
|
|
||||||
1=incs.h
|
|
||||||
2=i2c_twl.h
|
|
||||||
3=i2c_ctr.h
|
|
||||||
4=led.h
|
|
||||||
5=accero.h
|
|
||||||
6=pm.h
|
|
||||||
7=rtc.h
|
|
||||||
[accero.c]
|
[accero.c]
|
||||||
T=4ae66d1d
|
T=4ae66d1d
|
||||||
1=incs.h
|
1=incs.h
|
||||||
2=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
2=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||||
[self_flash.c]
|
[self_flash.c]
|
||||||
T=4ae67264
|
T=4af2385f
|
||||||
1=incs_loader.h
|
1=incs_loader.h
|
||||||
2=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
2=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||||
3=fsl_user.h
|
3=fsl_user.h
|
||||||
@ -106,6 +91,36 @@ T=4ae67264
|
|||||||
[reboot.c]
|
[reboot.c]
|
||||||
T=4ae01bca
|
T=4ae01bca
|
||||||
1=incs_loader.h
|
1=incs_loader.h
|
||||||
|
[sw.c]
|
||||||
|
T=4af283ee
|
||||||
|
1=incs.h
|
||||||
|
2=i2c_twl.h
|
||||||
|
3=i2c_ctr.h
|
||||||
|
4=led.h
|
||||||
|
5=accero.h
|
||||||
|
6=pm.h
|
||||||
|
7=rtc.h
|
||||||
|
[task_debug.c]
|
||||||
|
T=4af37091
|
||||||
|
1=incs.h
|
||||||
|
2=renge\renge.h
|
||||||
|
3=pm.h
|
||||||
|
[task_misc.c]
|
||||||
|
T=4af23bcc
|
||||||
|
1=incs.h
|
||||||
|
2=renge\renge.h
|
||||||
|
3=pm.h
|
||||||
|
4=accero.h
|
||||||
|
[task_sys.c]
|
||||||
|
T=4af3afcc
|
||||||
|
1=incs.h
|
||||||
|
2=i2c_twl.h
|
||||||
|
3=i2c_ctr.h
|
||||||
|
4=led.h
|
||||||
|
5=accero.h
|
||||||
|
6=pm.h
|
||||||
|
7=rtc.h
|
||||||
|
8=sw.h
|
||||||
[incs_loader.h]
|
[incs_loader.h]
|
||||||
T=4aca8c17
|
T=4aca8c17
|
||||||
1=jhl_defs.h
|
1=jhl_defs.h
|
||||||
@ -117,14 +132,14 @@ T=4aca8c17
|
|||||||
7=i2c_mcu.h
|
7=i2c_mcu.h
|
||||||
8=WDT.h
|
8=WDT.h
|
||||||
[jhl_defs.h]
|
[jhl_defs.h]
|
||||||
T=4ae647cd
|
T=4af224f5
|
||||||
[user_define.h]
|
[user_define.h]
|
||||||
T=4ae8dfa1
|
T=4af3ad8a
|
||||||
1=config.h
|
1=config.h
|
||||||
[config.h]
|
[config.h]
|
||||||
T=4aee58b4
|
T=4af37e8a
|
||||||
[bsr_system.h]
|
[bsr_system.h]
|
||||||
T=4aca8c17
|
T=4af27e29
|
||||||
[renge\renge.h]
|
[renge\renge.h]
|
||||||
T=4abc82ef
|
T=4abc82ef
|
||||||
1=renge\renge_defs.h
|
1=renge\renge_defs.h
|
||||||
@ -135,13 +150,13 @@ T=4ac96e5c
|
|||||||
T=4ad68780
|
T=4ad68780
|
||||||
1=renge\renge_defs.h
|
1=renge\renge_defs.h
|
||||||
[vreg_ctr.h]
|
[vreg_ctr.h]
|
||||||
T=4aee86c8
|
T=4af37075
|
||||||
1=config.h
|
1=config.h
|
||||||
[loader.h]
|
[loader.h]
|
||||||
T=4aca8c17
|
T=4aca8c17
|
||||||
1=jhl_defs.h
|
1=jhl_defs.h
|
||||||
[i2c_mcu.h]
|
[i2c_mcu.h]
|
||||||
T=4aee9168
|
T=4af25faf
|
||||||
[WDT.h]
|
[WDT.h]
|
||||||
T=4aca8c17
|
T=4aca8c17
|
||||||
[fsl.h]
|
[fsl.h]
|
||||||
@ -151,7 +166,7 @@ T=4aca8c17
|
|||||||
[i2c_ctr.h]
|
[i2c_ctr.h]
|
||||||
T=4aca8c17
|
T=4aca8c17
|
||||||
[pm.h]
|
[pm.h]
|
||||||
T=4aee8ed6
|
T=4af23bbb
|
||||||
[rtc.h]
|
[rtc.h]
|
||||||
T=4aca8c17
|
T=4aca8c17
|
||||||
[adc.h]
|
[adc.h]
|
||||||
@ -170,7 +185,7 @@ T=4ae508d8
|
|||||||
7=i2c_mcu.h
|
7=i2c_mcu.h
|
||||||
8=rtc.h
|
8=rtc.h
|
||||||
[vreg_twl.h]
|
[vreg_twl.h]
|
||||||
T=4ae8ea1f
|
T=4af37c30
|
||||||
[accero.h]
|
[accero.h]
|
||||||
T=4aca8c17
|
T=4aca8c17
|
||||||
1=jhl_defs.h
|
1=jhl_defs.h
|
||||||
@ -187,3 +202,5 @@ T=49a3bd4e
|
|||||||
T=45f12258
|
T=45f12258
|
||||||
[reboot.h]
|
[reboot.h]
|
||||||
T=4ae008e4
|
T=4ae008e4
|
||||||
|
[sw.h]
|
||||||
|
T=4af2326b
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user