mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
V0.2 9/8,9/15 実装分
(実装)・加速度センサ透過アクセス (修正)・ADCノイズ (追加)・ワーキングモデル対応 (修正)・I2C_mの通信中にI2C_2からデータを破壊することがありそうだった (修正)・電源投入時の残量ICへのセットの順番など (追加)・TWLからの割り込みを新規I2Cへ通知 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@5 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
0c0ecf9023
commit
5812913f0d
@ -41,6 +41,10 @@
|
||||
#define ACC_BITS_ALL_AXIS_ON 7
|
||||
|
||||
|
||||
#define VREG_BITMASK_ACC_CONF0_HOSU 1
|
||||
#define VREG_BITMASK_ACC_CONF1_ACQ 3
|
||||
|
||||
|
||||
|
||||
// ========================================================
|
||||
u8 hosu_mode = 0;
|
||||
@ -62,32 +66,23 @@ task_status_immed tsk_cbk_accero(){ //
|
||||
|
||||
if( system_status.pwr_state == ON ){
|
||||
|
||||
// if( 自動歩数計? )
|
||||
/*
|
||||
sequence += 1;
|
||||
vreg_ctr[VREG_C_ACC_0SEQ + 7 * ( sequence & 0x03 )] = sequence;
|
||||
dest_adrs = &vreg_ctr[VREG_C_ACC_0XH] + 7 * ( sequence & 0x03 ) + 1;
|
||||
iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, dest_adrs );
|
||||
*/
|
||||
iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, &vreg_ctr[VREG_C_ACC_XH] );
|
||||
if(( vreg_ctr[ VREG_C_ACC_CONFIG ] & 0x03 ) == 1 ){
|
||||
// 加速度センサデータレジスタへの反映
|
||||
iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, &vreg_ctr[VREG_C_ACC_XL] );
|
||||
if(( vreg_ctr[ VREG_C_ACC_CONFIG ] & VREG_BITMASK_ACC_CONF1_ACQ ) == 1 ){
|
||||
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_ACC_DAT_RDY;
|
||||
IRQ0_ast;
|
||||
IRQ0_ast;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
switch( system_status.pwr_state ){
|
||||
case OFF:
|
||||
case ON_TRIG:
|
||||
case ON:
|
||||
case SLEEP_TRIG:
|
||||
case SLEEP:
|
||||
case OFF_TRIG:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
*/
|
||||
// 歩数計 offでなければ、電源off中でも計測
|
||||
if(( vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] & VREG_BITMASK_ACC_CONF0_HOSU ) != 0 ){
|
||||
if(( vreg_ctr[ VREG_C_ACC_CONFIG ] & VREG_BITMASK_ACC_CONF1_ACQ ) == 0x01 ){
|
||||
// 歩数計アルゴリズム 100Hz版
|
||||
}else{
|
||||
// 同 省電力版
|
||||
}
|
||||
}
|
||||
|
||||
return( ERR_SUCCESS );
|
||||
}
|
||||
|
||||
@ -98,7 +93,8 @@ task_status_immed tsk_cbk_accero(){ //
|
||||
加速度センサ透過アクセス リード
|
||||
========================================================*/
|
||||
task_status_immed acc_read(){
|
||||
vreg_ctr[VREG_C_ACC_R_BUF] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] );
|
||||
vreg_ctr[ VREG_C_ACC_W_BUF ] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] );
|
||||
// vreg_ctr[ VREG_C_ACC_R_BUF ] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] );
|
||||
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_ACC_ACK;
|
||||
IRQ0_ast;
|
||||
return( ERR_SUCCESS );
|
||||
@ -110,7 +106,7 @@ task_status_immed acc_read(){
|
||||
加速度センサ透過アクセス ライト
|
||||
========================================================*/
|
||||
task_status_immed acc_write(){
|
||||
vreg_ctr[VREG_C_ACC_R_BUF] = iic_mcu_write_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_W_ADRS], vreg_ctr[VREG_C_ACC_W_BUF] );
|
||||
iic_mcu_write_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_W_ADRS], vreg_ctr[VREG_C_ACC_W_BUF] );
|
||||
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_ACC_ACK;
|
||||
IRQ0_ast;
|
||||
return( ERR_SUCCESS );
|
||||
@ -123,44 +119,35 @@ task_status_immed acc_write(){
|
||||
todo 他のモードだったら止めたり、復帰させたり
|
||||
割り込みルーチンなどでカウント判定が必要
|
||||
========================================================*/
|
||||
err accero_hosu_start(){
|
||||
task_status_immed acc_set(){
|
||||
u8 temp;
|
||||
u8 err;
|
||||
u8 str_send_buf[4];
|
||||
|
||||
|
||||
if( system_status.pwr_state == ON ){
|
||||
temp = iic_mcu_read_a_byte( IIC_SLA_ACCEL, ACC_REG_WHOAMI );
|
||||
iic_mcu_read_a_byte( IIC_SLA_ACCEL, ACC_REG_WHOAMI );
|
||||
if( iic_mcu_bus_status == ERR_NOSLAVE ){
|
||||
// vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] |= 0x01;
|
||||
return( ERR_ERR );
|
||||
return( ERR_SUCCESS ); // とりあえず、タスクは削除しなくてはならない
|
||||
}
|
||||
|
||||
str_send_buf[0] = ( ACC_BITS_PM_NORM << ACC_bP_PM0 | ACC_BITS_DR_100Hz << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON ); // cont1
|
||||
str_send_buf[1] = 0x00; // 泣ける...
|
||||
str_send_buf[1] = 0x00; // ...。
|
||||
str_send_buf[2] = 0x02;
|
||||
str_send_buf[3] = 0x80;
|
||||
if( (( vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] & VREG_BITMASK_ACC_CONF0_HOSU ) == 0 )
|
||||
&& (( vreg_ctr[ VREG_C_ACC_CONFIG ] & VREG_BITMASK_ACC_CONF1_ACQ ) == 0 ) ){
|
||||
// 完全停止
|
||||
str_send_buf[0] = ( ACC_BITS_PM_PDN << ACC_bP_PM0 | 0 << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON );
|
||||
}
|
||||
else
|
||||
{
|
||||
if(( vreg_ctr[ VREG_C_ACC_CONFIG ] & VREG_BITMASK_ACC_CONF1_ACQ ) == 0x01 ){
|
||||
// 100Hz 自動取り込み
|
||||
str_send_buf[0] = ( ACC_BITS_PM_NORM << ACC_bP_PM0 | ACC_BITS_DR_100Hz << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON );
|
||||
}else{
|
||||
// 10Hz 自動取り込み(歩数計向け省電力モード)
|
||||
str_send_buf[0] = ( ACC_BITS_PM_LP10 << ACC_bP_PM0 | ACC_BITS_ALL_AXIS_ON );
|
||||
}
|
||||
}
|
||||
err = iic_mcu_write( IIC_SLA_ACCEL, ( ACC_REG_CTRL1 | 0x80 ), 4, str_send_buf );
|
||||
|
||||
// str_send_buf[0] = 0x00;
|
||||
// err |= iic_mcu_write( IIC_SLA_ACCEL, ACC_REG_CTRL5, 1, str_send_buf );
|
||||
|
||||
return( err );
|
||||
return( ERR_SUCCESS );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
err accero_hosu_stop(){
|
||||
u8 err;
|
||||
u8 str_send_buf[4];
|
||||
|
||||
str_send_buf[0] = ( ACC_BITS_PM_PDN << ACC_bP_PM0 | 0 << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON );
|
||||
str_send_buf[1] = 0x00; // 泣ける...
|
||||
str_send_buf[2] = 0x02;
|
||||
str_send_buf[3] = 0x80;
|
||||
err = iic_mcu_write( IIC_SLA_ACCEL, ( ACC_REG_CTRL1 | 0x80 ) , 4, str_send_buf );
|
||||
return( err );
|
||||
}
|
||||
|
||||
@ -6,9 +6,6 @@
|
||||
|
||||
task_status_immed tsk_cbk_accero();
|
||||
|
||||
err accero_hosu_start();
|
||||
err accero_hosu_stop();
|
||||
|
||||
|
||||
task_status_immed acc_set();
|
||||
|
||||
#endif
|
||||
|
||||
75
trunk/adc.c
75
trunk/adc.c
@ -38,7 +38,9 @@ task_interval tsk_adc(){
|
||||
|| ( system_status.pwr_state == SLEEP )){
|
||||
if( adc_updated ){
|
||||
|
||||
// 3D
|
||||
#if 0
|
||||
3D depth と Vol の変化では割り込みを入れない
|
||||
// 3D
|
||||
if( abs( old_3ddepth - vreg_ctr[ VREG_C_3D_DEPTH ] ) >= 4 ){
|
||||
old_3ddepth = vreg_ctr[ VREG_C_3D_DEPTH ];
|
||||
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_VR_3D_CHANGE;
|
||||
@ -51,6 +53,7 @@ task_interval tsk_adc(){
|
||||
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_VR_SNDVOL_CHANGE;
|
||||
IRQ0_ast;
|
||||
}
|
||||
#endif
|
||||
|
||||
// codecに伝える
|
||||
if( vreg_ctr[ VREG_C_SND_VOL ] != sndvol_codec ){
|
||||
@ -60,6 +63,7 @@ task_interval tsk_adc(){
|
||||
u8 temp;
|
||||
|
||||
do{
|
||||
temp = iic_mcu_write_a_byte( IIC_SLA_DCP, 0x08, 0x80 ); // ACR←0x80 揮発モードへ
|
||||
temp = iic_mcu_write_a_byte( IIC_SLA_DCP, 0, sndvol_codec );
|
||||
NOP();
|
||||
}while( temp != ERR_SUCCESS );
|
||||
@ -76,11 +80,7 @@ task_interval tsk_adc(){
|
||||
|
||||
ADPC = 0x06; // ADCポートのセレクト
|
||||
ADS = ADC_SEL_3D;
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
// NOP();
|
||||
ADCS = 1; // AD開始。 /// ここまでに、1us以上開ける
|
||||
|
||||
ADIF = 0;
|
||||
@ -94,43 +94,63 @@ task_interval tsk_adc(){
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
過去3つのminでもMAXでもない値を返す
|
||||
突発的なノイズを除く。
|
||||
根本対策ではないが、これはこれで使い道がある。
|
||||
======================================================== */
|
||||
static u8 getmean3( u8* hist ){
|
||||
u8 temp;
|
||||
|
||||
if( *hist < *( hist+1 ) ){
|
||||
temp = *hist;
|
||||
*hist = *(hist+1);
|
||||
*(hist+1) = temp;
|
||||
}
|
||||
|
||||
if( !( *hist > *(hist+1) )){
|
||||
return *hist;
|
||||
}else{
|
||||
if( *(hist+1) > *(hist+2) ){
|
||||
return *(hist+1);
|
||||
}else{
|
||||
return *(hist+2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* ========================================================
|
||||
自前で次のチャンネル
|
||||
一通り終わったら止める
|
||||
======================================================== */
|
||||
/*
|
||||
static u8 average( u8* dat ){
|
||||
static u8 ind;
|
||||
|
||||
hist[i] = ADCRH;
|
||||
++i &= 0x03;
|
||||
|
||||
return( (u8)( (u16)( hist[0] + hist[1] + hist[2] + hist[3] ) /4 ));
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
__interrupt void int_adc(){
|
||||
static u8 hist_3d_dep[4];
|
||||
static u8 hist_snd_vol[4];
|
||||
static u8 hist_bt_temp[4];
|
||||
u8 temp;
|
||||
static u8 hist_3d_dep[3];
|
||||
static u8 hist_snd_vol[3];
|
||||
static u8 hist_bt_temp[3];
|
||||
static u8 index;
|
||||
u8 temp;
|
||||
|
||||
EI();
|
||||
switch( ADS ){
|
||||
case( ADC_SEL_3D ):
|
||||
vreg_ctr[ VREG_C_3D_DEPTH ] = ADCRH;
|
||||
hist_3d_dep[ index ] = ADCRH;
|
||||
vreg_ctr[ VREG_C_3D_DEPTH ] = getmean3( hist_3d_dep );
|
||||
break;
|
||||
|
||||
case( ADC_SEL_VOL ):
|
||||
temp = ADCRH;
|
||||
if( temp > 200 ){
|
||||
temp = 200;
|
||||
temp = 200;
|
||||
}
|
||||
vreg_ctr[ VREG_C_SND_VOL ] = temp;
|
||||
hist_snd_vol[ index ] = temp;
|
||||
vreg_ctr[ VREG_C_SND_VOL ] = getmean3( hist_snd_vol );
|
||||
break;
|
||||
|
||||
case( ADC_SEL_BATT_TEMP ):
|
||||
raw_adc_temperature = ADCRH;
|
||||
hist_bt_temp[ index ] = ADCRH;
|
||||
raw_adc_temperature = getmean3( hist_3d_dep );
|
||||
renge_task_immed_add( PM_bt_temp_update );
|
||||
break;
|
||||
|
||||
case( ADC_SEL_BATT_DET ):
|
||||
@ -139,13 +159,14 @@ __interrupt void int_adc(){
|
||||
}
|
||||
|
||||
|
||||
// if( ADS == ADC_SEL_BATT_DET ){
|
||||
// もっとまともな書き方がありそうだ
|
||||
// if( ADS == ADC_SEL_BATT_DET ){
|
||||
if( ADS != ADC_SEL_BATT_TEMP ){ // 電池判別は電源投入の一回のみ
|
||||
ADS += 1; // 次のチャンネル
|
||||
}else{
|
||||
ADCEN = 0; // 止めてしまう
|
||||
adc_updated = 1;
|
||||
index = ( index == 2 )? 0: ( index + 1 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,12 +4,12 @@
|
||||
#define _debug_
|
||||
|
||||
#define MCU_VER_MAJOR 0;
|
||||
#define MCU_VER_MINOR 1;
|
||||
#define MCU_VER_MINOR 2;
|
||||
|
||||
|
||||
#define _MODEL_TEG2_
|
||||
//#define _MODEL_WM0_
|
||||
//define _MODEL_CTR_
|
||||
//#define _MODEL_CTR_
|
||||
|
||||
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
藤田@開技.nintendo
|
||||
'09 Apr
|
||||
======================================================== */
|
||||
#include "incs_loader.h"
|
||||
#include "incs.h"
|
||||
|
||||
// u16 tot;
|
||||
|
||||
@ -173,6 +173,8 @@ __interrupt void int_iic_ctr(){
|
||||
static u8 reg_adrs_internal;
|
||||
static u8 trx_buf;
|
||||
|
||||
// EI();
|
||||
|
||||
// 自局呼び出しに応答。
|
||||
// 初期化など
|
||||
WREL = 1; // ウェイト解除
|
||||
@ -248,7 +250,11 @@ void IIC_ctr_Init( void ){
|
||||
IICAPR0 = 0; /* set INTIICA high priority */
|
||||
IICAPR1 = 0; /* set INTIICA high priority */
|
||||
|
||||
#ifdef _MODEL_WM0_
|
||||
P20 &= ~0x3;
|
||||
#else
|
||||
P6 &= ~0x3;
|
||||
#endif
|
||||
|
||||
SVA = IIC_C_SLAVEADDRESS;
|
||||
IICF = 0x01;
|
||||
@ -266,7 +272,11 @@ void IIC_ctr_Init( void ){
|
||||
IICAMK = 0; // 割り込みを許可
|
||||
|
||||
IICE = 1;
|
||||
#ifdef _MODEL_WM0_
|
||||
PM20 &= ~0x3; /* set clock pin for IICA */
|
||||
#else
|
||||
PM6 &= ~0x3; /* set clock pin for IICA */
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -277,7 +287,3 @@ void IIC_ctr_Stop( void ){
|
||||
IICAEN = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@ u8 iic_mcu_bus_status; //
|
||||
エラー判定ができません。
|
||||
======================================================== */
|
||||
u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ){
|
||||
|
||||
u8 dat;
|
||||
#ifdef _debug_
|
||||
iic_mcu_start();
|
||||
#else
|
||||
@ -74,11 +74,13 @@ u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ){
|
||||
while( iic_mcu_busy ){
|
||||
NOP();
|
||||
}
|
||||
iic_mcu_busy = 1;
|
||||
|
||||
iic_mcu_bus_status = ERR_OK;
|
||||
// スタートコンディションとスレーブの呼び出し、レジスタアドレスの送信
|
||||
if( iic_mcu_call_slave( SLA ) != 0 ){
|
||||
iic_mcu_bus_status = ERR_NOSLAVE;
|
||||
iic_mcu_busy = 0;
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
@ -100,11 +102,12 @@ u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ){
|
||||
|
||||
while( IICIF10 == 0 ){ // 受信完了待ち
|
||||
;}
|
||||
dat = SIO10;
|
||||
|
||||
iic_mcu_send_sp();
|
||||
IICIF10 = 0; // 後を濁さないこと
|
||||
|
||||
return( SIO10 );
|
||||
iic_mcu_busy = 0;
|
||||
return( dat );
|
||||
}
|
||||
|
||||
|
||||
@ -143,8 +146,10 @@ err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8* dest ){
|
||||
}
|
||||
//*/
|
||||
|
||||
iic_mcu_busy = 1;
|
||||
// スタートコンディションとスレーブの呼び出し、レジスタアドレスの送信
|
||||
if( iic_mcu_call_slave( slave ) != 0 ){
|
||||
iic_mcu_busy = 0;
|
||||
return( ERR_NAK );
|
||||
}
|
||||
|
||||
@ -193,9 +198,17 @@ err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8* dest ){
|
||||
======================================================== */
|
||||
err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ){
|
||||
|
||||
if( iic_mcu_initialized == 0 ){
|
||||
#ifdef _debug_
|
||||
iic_mcu_start();
|
||||
#else
|
||||
while(1){};
|
||||
#endif
|
||||
}
|
||||
while( iic_mcu_busy ){
|
||||
NOP();
|
||||
}
|
||||
iic_mcu_busy = 1;
|
||||
#if 0
|
||||
temp = dat;
|
||||
return( iic_mcu_write( SLA, adrs, 1, &temp ) );
|
||||
@ -204,12 +217,13 @@ err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ){
|
||||
// スタートコンディションとスレーブの呼び出し...
|
||||
IICMK10 = 1;
|
||||
if( iic_mcu_call_slave( SLA ) != 0 ){
|
||||
iic_mcu_busy = 0;
|
||||
return( ERR_NAK );
|
||||
}
|
||||
|
||||
iic_mcu_send_a_byte( adrs );
|
||||
iic_mcu_send_a_byte( dat );
|
||||
iic_mcu_send_sp();
|
||||
iic_mcu_busy = 0;
|
||||
return( ERR_SUCCESS );
|
||||
#endif
|
||||
}
|
||||
@ -254,14 +268,14 @@ err iic_mcu_write( u8 slave, u8 adrs, u8 len, u8* src ){
|
||||
}
|
||||
//*/
|
||||
|
||||
iic_mcu_busy = 1;
|
||||
// スタートコンディションとスレーブの呼び出し...
|
||||
IICMK10 = 1;
|
||||
if( iic_mcu_call_slave( slave ) != 0 ){
|
||||
iic_mcu_busy = 0;
|
||||
return( ERR_NAK );
|
||||
}
|
||||
|
||||
iic_mcu_busy = 1;
|
||||
|
||||
if( !iic_mcu_wo_dma ){
|
||||
// DMAを使用する(通常)
|
||||
|
||||
@ -319,6 +333,7 @@ __interrupt void int_dma1(){
|
||||
IIC MCUのバイト送出完了割り込み
|
||||
======================================================== */
|
||||
__interrupt void int_iic10(){
|
||||
EI();
|
||||
if( iic_mcu_wo_dma ){
|
||||
// DMA使用せず、転送途中
|
||||
if( iic_send_wo_dma_len != 0 ){
|
||||
|
||||
@ -24,7 +24,7 @@ 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_a_byte( u8 SLA, u8 adrs, u8 dat );
|
||||
|
||||
|
||||
// ↓その通信が完了したら解除されます。
|
||||
#define iic_mcu_set_wo_dma() { while( iic_mcu_busy ){;} iic_mcu_wo_dma = 1; }
|
||||
|
||||
void iic2m_bus_reset();
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
|
||||
extern u8 vreg_twl[];
|
||||
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
#ifdef _MODEL_WM0_
|
||||
|
||||
// ワーキングモデルはI2Cが逆
|
||||
@ -68,22 +68,17 @@ extern u8 vreg_twl[];
|
||||
#define WTIM WTIM1
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef _MCU_BSR_
|
||||
|
||||
// ke3の時はダミー関数
|
||||
void IIC_twl_Stop( void ){}
|
||||
// __interrupt void int_iic_twl(){}
|
||||
void IIC_twl_Init( void ){}
|
||||
void IIC_twl_SlaveReceiveStart(){}
|
||||
|
||||
|
||||
#else
|
||||
|
||||
|
||||
|
||||
/*============================================================================*/
|
||||
u8 vreg_adrs;
|
||||
u8 pre_dat;
|
||||
@ -110,24 +105,29 @@ u16 tot;
|
||||
|
||||
|
||||
__interrupt void int_iic_twl(){
|
||||
u8 temp;
|
||||
u16 tot = 0;
|
||||
|
||||
WREL = 1; // ウェイト解除して次のバイトを待つ
|
||||
// WDT_Restart();
|
||||
// フラグ1回目 スレーブアドレス,R/W
|
||||
/* COI != 1 なら、割り込みはいらない
|
||||
if( COI != 1 ){ // 被呼び出し?
|
||||
LREL = 1; // 呼ばれたのは他のID
|
||||
return;
|
||||
}else{
|
||||
// ACKE0 = 1; // 自動でackを返すようにする
|
||||
// WREL = 1; // ウェイト解除して次のバイトを待つ
|
||||
ACKE0 = 1; // 自動でackを返すようにする
|
||||
WREL = 1; // ウェイト解除して次のバイトを待つ
|
||||
}
|
||||
*/
|
||||
WREL = 1; // ウェイト解除して次のバイトを待つ
|
||||
|
||||
wait_next; // 1バイト受信完了を待つ
|
||||
|
||||
// 2回目 R/W レジスタアドレス
|
||||
temp = IICA;
|
||||
WREL = 1;
|
||||
IICAIF = 0;
|
||||
vreg_adrs = adrs_table_twl_ext2int( IICA );
|
||||
vreg_adrs = adrs_table_twl_ext2int( temp );
|
||||
|
||||
// 3回目
|
||||
// スタートコンディションか、データ受信完了フラグ待ち
|
||||
@ -136,11 +136,13 @@ __interrupt void int_iic_twl(){
|
||||
if( IICAIF == 1 ){
|
||||
// 受信 //
|
||||
IICAIF = 0;
|
||||
WREL = 1;
|
||||
temp = IICA;
|
||||
IICA = 0xFF;
|
||||
// WREL = 1;
|
||||
|
||||
// 通常アクセス(ライト) //
|
||||
LREL = 1;
|
||||
vreg_twl_write( vreg_adrs, IICA );
|
||||
LREL = 1; // スタートコンディション待ちへ(連続書き込み未対応のため)
|
||||
vreg_twl_write( vreg_adrs, temp );
|
||||
return; // 受信おしまい //
|
||||
|
||||
}else if( STD ){
|
||||
@ -154,7 +156,7 @@ __interrupt void int_iic_twl(){
|
||||
LREL = 1; // 呼ばれたのは他のID(あれ?)
|
||||
return;
|
||||
}
|
||||
IICA = pre_dat; // データを送る
|
||||
IICA = pre_dat; // データを送る。ウェイトも解除される。
|
||||
|
||||
wait_next;
|
||||
// 4回目。(送信データ後の、ACK/NACK後) どうしても発生してしまう。
|
||||
@ -182,8 +184,11 @@ void IIC_twl_Init( void ){
|
||||
|
||||
IICAPR0 = 0; /* set INTIICA high priority */
|
||||
IICAPR1 = 0; /* set INTIICA high priority */
|
||||
|
||||
#ifdef _MODEL_WM0_
|
||||
P6 &= ~0x3;
|
||||
#else
|
||||
P20 &= ~0x3;
|
||||
#endif
|
||||
|
||||
SVA = IIC_T_SLAVEADDRESS;
|
||||
IICF = 0x01;
|
||||
@ -201,7 +206,13 @@ void IIC_twl_Init( void ){
|
||||
IICAMK = 0; // 割り込みを許可
|
||||
|
||||
IICE = 1;
|
||||
#ifdef _MODEL_WM0_
|
||||
PM6 &= ~0x3; /* set clock pin for IICA */
|
||||
#else
|
||||
PM20 &= ~0x3; /* set clock pin for IICA */
|
||||
#endif
|
||||
|
||||
LREL = 1;
|
||||
}
|
||||
|
||||
|
||||
@ -213,13 +224,4 @@ void IIC_twl_Stop( void ){
|
||||
}
|
||||
|
||||
|
||||
|
||||
//****************************************************************************
|
||||
void IIC_twl_SlaveReceiveStart(){
|
||||
IICE = 1;
|
||||
LREL = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@ -24,7 +24,6 @@
|
||||
#include "i2c_mcu.h"
|
||||
#include "pm.h"
|
||||
#include "rtc.h"
|
||||
#include "magic.h"
|
||||
|
||||
|
||||
// ========================================================
|
||||
@ -182,7 +181,7 @@ void hdwinit(void){ //
|
||||
PU0 = 0b00000000; // バッテリ認証後にそれぞれセット
|
||||
PU1 = 0b00000000;
|
||||
PU3 = 0b00000000; // 外部でプルアップしないと具合が悪い。CPUがプルアップする
|
||||
PU4 = 0b00000000;
|
||||
PU4 = 0b00000000; // 外部でプルアップしてほしいtool0,1)
|
||||
PU5 = 0b00000011;
|
||||
PU7 = 0b00011001;
|
||||
PU12 = 0b00000000;
|
||||
@ -237,7 +236,7 @@ void hdwinit(void){ //
|
||||
PR00H = 0b11111111;
|
||||
PR10H = 0b11111111;
|
||||
PR01L = 0b11111111;
|
||||
PR11L = 0b11111111;
|
||||
PR11L = 0b11111110;
|
||||
PR01H = 0b11111111;
|
||||
PR11H = 0b11111111;
|
||||
PR02L = 0b11111111;
|
||||
|
||||
@ -91,10 +91,10 @@ void main_loop( void ){
|
||||
======================================================== */
|
||||
static void read_dipsw(){
|
||||
// ソフトディップスイッチ読み込み
|
||||
PU4 |= 0x03; // dip sw 0,1
|
||||
// PU4 |= 0x03; // dip sw 0,1
|
||||
system_status.dipsw0 = ( DIPSW_0 == 0 )? 0: 1;
|
||||
system_status.dipsw1 = ( DIPSW_1 == 0 )? 0: 1;
|
||||
PU4 &= ~0x03;
|
||||
// PU4 &= ~0x03;
|
||||
}
|
||||
|
||||
|
||||
|
||||
114
trunk/pm.c
114
trunk/pm.c
@ -20,7 +20,6 @@
|
||||
// -1.45 ,-3.9}
|
||||
|
||||
|
||||
|
||||
// ========================================================
|
||||
static const u8 BT_BT_PARAM_PANA[64] = {
|
||||
0xEA, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
@ -32,13 +31,16 @@ static const u8 BT_BT_PARAM_PANA[64] = {
|
||||
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
|
||||
0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F };
|
||||
|
||||
static const u8 BT_BT_PARAM_PANA_RCOMP_AND_PARAM[3] = { 158, 1, 4 }; // RCOMP, TempCoUp, ---Down;
|
||||
|
||||
#define BT_PANA_RCOMP 158
|
||||
u16 BT_PANA_TEMPCOUP = 1.45*8;
|
||||
u16 BT_PANA_TEMPCODN = 3.90*8;
|
||||
|
||||
|
||||
// ========================================================
|
||||
u16 raw_adc_temperature;
|
||||
|
||||
u8 starting_rcomp;
|
||||
u16 temp_co_up;
|
||||
u16 temp_co_dn;
|
||||
|
||||
#define _TEG_
|
||||
|
||||
@ -69,12 +71,7 @@ err PM_bt_auth(){
|
||||
返値 無し
|
||||
======================================================== */
|
||||
static void BT_set_batt_vend1(){
|
||||
|
||||
iic_mcu_write( IIC_SLA_BT_GAUGE,
|
||||
BT_BT_PARAM_PANA_RCOMP_ADRS,
|
||||
sizeof( BT_BT_PARAM_PANA_RCOMP_AND_PARAM ),
|
||||
BT_BT_PARAM_PANA_RCOMP_AND_PARAM
|
||||
);
|
||||
u8 dat[2];
|
||||
|
||||
iic_mcu_set_wo_dma();
|
||||
iic_mcu_write( IIC_SLA_BT_GAUGE,
|
||||
@ -83,7 +80,11 @@ static void BT_set_batt_vend1(){
|
||||
BT_BT_PARAM_PANA
|
||||
);
|
||||
|
||||
|
||||
iic_mcu_read( IIC_SLA_BT_GAUGE,
|
||||
BT_GAUGE_REG_OCV,
|
||||
2,
|
||||
dat
|
||||
);
|
||||
/*
|
||||
ベリファイしなさいと書いてあるが意味がわからないです
|
||||
todo あとで
|
||||
@ -103,6 +104,13 @@ Send Memory Location (0x0Eh)
|
||||
Read Data Byte OriginalOCV1
|
||||
Read Data Byte OriginalOCV2
|
||||
STOP
|
||||
*/
|
||||
iic_mcu_read( IIC_SLA_BT_GAUGE,
|
||||
BT_GAUGE_REG_OCV,
|
||||
2,
|
||||
dat
|
||||
);
|
||||
/*
|
||||
//Write OCV Register
|
||||
START
|
||||
Send Slave Address (0x6Ch)
|
||||
@ -110,6 +118,15 @@ Send Memory Location (0x0Eh)
|
||||
Send Data Byte (0xh)
|
||||
Send Data Byte (0xh)
|
||||
STOP
|
||||
*/
|
||||
/*
|
||||
iic_mcu_write( IIC_SLA_BT_GAUGE,
|
||||
BT_GAUGE_REG_OCV,
|
||||
2,
|
||||
??
|
||||
);
|
||||
*/
|
||||
/*
|
||||
//Read SOC Register
|
||||
START
|
||||
Send Slave Address (0x6Ch)
|
||||
@ -120,6 +137,13 @@ Send Memory Location (0x04h)
|
||||
Read Data Byte SOC1
|
||||
Read Data Byte SOC2
|
||||
STOP
|
||||
*/
|
||||
iic_mcu_read( IIC_SLA_BT_GAUGE,
|
||||
BT_GAUGE_REG_SOC,
|
||||
2,
|
||||
dat
|
||||
);
|
||||
/*
|
||||
//Compare value
|
||||
//Write OCV Register back to original
|
||||
START
|
||||
@ -128,6 +152,13 @@ Send Memory Location (0x0Eh)
|
||||
Send Data Byte (OriginalOCV1)
|
||||
Send Data Byte (OriginalOCV2)
|
||||
STOP
|
||||
*/
|
||||
iic_mcu_write( IIC_SLA_BT_GAUGE,
|
||||
BT_GAUGE_REG_OCV,
|
||||
2,
|
||||
dat
|
||||
);
|
||||
/*
|
||||
To lock the model the host software must write 0x00h to memory location 0x3Eh and 0x00h to memory location
|
||||
0x3Fh.
|
||||
//Lock Model Access
|
||||
@ -137,9 +168,18 @@ Send Memory Location (0x3Eh)
|
||||
Send Data Byte (0x00h)
|
||||
Send Data Byte (0x00h)
|
||||
STOP
|
||||
|
||||
*/
|
||||
dat[0] = dat[1] = 0;
|
||||
iic_mcu_write( IIC_SLA_BT_GAUGE,
|
||||
BT_GAUGE_REG_LOCK,
|
||||
2,
|
||||
dat
|
||||
);
|
||||
|
||||
starting_rcomp = BT_PANA_RCOMP;
|
||||
|
||||
temp_co_up = BT_PANA_TEMPCOUP;
|
||||
temp_co_dn = BT_PANA_TEMPCODN;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -150,7 +190,7 @@ STOP
|
||||
電池接続時に一回だけ
|
||||
======================================================== */
|
||||
err PM_reset(){
|
||||
iic_mcu_start();
|
||||
iic_mcu_start();
|
||||
return( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT, 0x00 ) );
|
||||
}
|
||||
|
||||
@ -177,22 +217,20 @@ void PM_init(){
|
||||
2,
|
||||
BT_GAUGE_QUICK_START[0] );
|
||||
|
||||
|
||||
|
||||
BT_TEMP_P = 1; // 電池温度監視スタート
|
||||
|
||||
|
||||
// 電池固有パラメータの書き込み
|
||||
// 電池固有パラメータの書き込み下準備
|
||||
iic_mcu_write( IIC_SLA_BT_GAUGE,
|
||||
BT_GAUGE_UNLOCK_ADRS,
|
||||
sizeof( BT_GAUGE_UNLOCK_KEY ),
|
||||
BT_GAUGE_UNLOCK_KEY );
|
||||
|
||||
// 電池メーカーのセット
|
||||
// 電池メーカーの判別とセット
|
||||
BT_DET_P = 1;
|
||||
temp = (u8)( get_adc( ADC_SEL_BATT_DET ) >> 6 );
|
||||
BT_DET_P = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
switch( temp ){
|
||||
// case( BT_VENDER_PANA ):
|
||||
default:
|
||||
@ -201,19 +239,16 @@ void PM_init(){
|
||||
}
|
||||
|
||||
// 電池温度測定
|
||||
BT_TEMP_P = 1; // 電池温度監視スタート
|
||||
raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); // 温度のtemp。
|
||||
PM_bt_temp_update();
|
||||
|
||||
|
||||
renge_task_immed_add( PM_bt_temp_update );
|
||||
|
||||
// PMIC バージョン読み出し
|
||||
temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER );
|
||||
// vreg_ctr[ VREG_C_PM_INFO ] = temp;
|
||||
|
||||
|
||||
/*
|
||||
PMICのセット
|
||||
LCD DACの値のセット
|
||||
LCD DACの値のセット
|
||||
*/
|
||||
|
||||
}
|
||||
@ -228,9 +263,10 @@ void PM_init(){
|
||||
・レジスタにセット
|
||||
・残量ICにセット
|
||||
======================================================== */
|
||||
err PM_bt_temp_update(){
|
||||
static u8 temp_threash_hi, temp_threash_lo;
|
||||
u8 temp[2];
|
||||
task_status_immed PM_bt_temp_update(){
|
||||
u16 newrcomp;
|
||||
static u8 temp_old = 0;
|
||||
static u8 count = 0; // たまにしか書きに行かない
|
||||
|
||||
/*
|
||||
サーミスタ - 10kΩ分圧点の時、
|
||||
@ -238,9 +274,18 @@ err PM_bt_temp_update(){
|
||||
村田 T[℃] = 81.48 - 111.97 x ratio
|
||||
TDK T = 81.406 - 111.81 x ratio
|
||||
*/
|
||||
vreg_ctr[ VREG_C_BT_TEMP ] = (u8)( (s16)(( 163 - ( 224 * ( raw_adc_temperature )) ) / 2 ) >> 8 );
|
||||
|
||||
vreg_ctr[ VREG_C_BT_TEMP ] = ( 163 - ( 224 * ( raw_adc_temperature )) ) / 2;
|
||||
|
||||
// 時々/大きく変化があったら書きにゆく
|
||||
if(( abs(vreg_ctr[ VREG_C_BT_TEMP ] - temp_old ) > 3 )
|
||||
|| ( count == 0 )){
|
||||
count += 1;
|
||||
if( (s8)vreg_ctr[ VREG_C_BT_TEMP ] > 20 ){
|
||||
newrcomp = -(( (s16)vreg_ctr[ VREG_C_BT_TEMP ] - 20 ) * temp_co_up );
|
||||
}else{
|
||||
newrcomp = -(( (s16)vreg_ctr[ VREG_C_BT_TEMP ] - 20 ) * temp_co_dn );
|
||||
}
|
||||
newrcomp += starting_rcomp;
|
||||
/*
|
||||
If Temperature > 20 Then
|
||||
NewRCOMP = StartingRCOMP + ((Temperature - 20) * TempCoUp)
|
||||
@ -250,9 +295,10 @@ Else
|
||||
NewRCOMP = StartingRCOMP
|
||||
End If
|
||||
*/
|
||||
// 変化が少なかったら書きに行かない
|
||||
// todo
|
||||
return( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_BT_PARAM_PANA_RCOMP_ADRS, 2, temp ) );
|
||||
return( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_BT_PARAM_PANA_RCOMP_ADRS, 2, newrcomp ) );
|
||||
}
|
||||
|
||||
return( ERR_SUCCESS );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -12,7 +12,9 @@ enum BT_GAUGE_REG_ADRS{
|
||||
BT_GAUGE_REG_SOC = 0x04,
|
||||
BT_GAUGE_REG_MODE = 0x06,
|
||||
BT_GAUGE_REG_VERSION = 0x08,
|
||||
BT_GAUGE_REG_OCV = 0x0E,
|
||||
BT_GAUGE_REG_RCOMP = 0xC0,
|
||||
BT_GAUGE_REG_LOCK = 0x3E,
|
||||
BT_GAUGE_REG_COMMAND = 0xFE
|
||||
};
|
||||
|
||||
@ -57,7 +59,7 @@ err PM_sys_pow_on();
|
||||
err PM_sys_pow_off();
|
||||
err PM_LCD_on();
|
||||
err PM_bt_auth();
|
||||
err PM_bt_temp_update();
|
||||
task_status_immed PM_bt_temp_update();
|
||||
void PM_init();
|
||||
err PM_reset();
|
||||
|
||||
|
||||
@ -73,31 +73,27 @@ task_interval tsk_debug(){
|
||||
// LED_WIFI_2 ^= 1;
|
||||
}
|
||||
|
||||
/*
|
||||
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 );
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count );
|
||||
return 0;
|
||||
*/
|
||||
return 255;
|
||||
}
|
||||
|
||||
|
||||
task_interval tsk_debug2(){
|
||||
volatile static u8 i;
|
||||
|
||||
i ++;
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, i );
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, i + 0x08 );
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, i + 0x20 );
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, i + 0x80 );
|
||||
/*
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_0ZH ] );
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_VOL ] );
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_3D_DEPTH ] );
|
||||
*/
|
||||
return 255;
|
||||
if(( system_status.pwr_state != OFF )
|
||||
&& ( system_status.pwr_state != ON_TRIG )){
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_IRQ0 ] );
|
||||
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, vreg_ctr[ VREG_C_SND_VOL ] );
|
||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_3D_DEPTH ] );
|
||||
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
|
||||
}
|
||||
return( 50/2 );
|
||||
}
|
||||
|
||||
|
||||
@ -170,6 +166,7 @@ task_interval tsk_soft_int(){
|
||||
|
||||
/* ========================================================
|
||||
COMMANDƒŒƒWƒXƒ^‚Ö‚Ì<EFBFBD>‘‚«<EFBFBD>ž‚Ý
|
||||
0なら呼ばれません。ケア不要
|
||||
======================================================== */
|
||||
task_status_immed do_command0(){
|
||||
|
||||
@ -198,11 +195,19 @@ task_status_immed do_command0(){
|
||||
|
||||
|
||||
/* ========================================================
|
||||
TEG2‚ł͖ł‚µ<EFBFBD>BŚă‚ĹŽŔ‘•
|
||||
互換向け、TWLアプリへの割り込み
|
||||
0なら呼ばれません。ケア不要
|
||||
======================================================== */
|
||||
task_status_immed do_command1(){
|
||||
static u8 state = 0;
|
||||
return( ERR_FINISED );
|
||||
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] = (( vreg_ctr[ VREG_C_COMMAND1 ] & 0x01 ) != 0 )? 0x80: 0x00; //pwsw_det
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] |= (( vreg_ctr[ VREG_C_COMMAND1 ] & 0x02 ) != 0 )? 0x01: 0x00; //reset_det
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] = (( vreg_ctr[ VREG_C_COMMAND1 ] & 0x01 ) != 0 )? 0x80: 0x00; //pwsw_det
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] |= (( vreg_ctr[ VREG_C_COMMAND1 ] & 0x02 ) != 0 )? 0x01: 0x00; //reset_det
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] |= (( vreg_ctr[ VREG_C_COMMAND1 ] & 0x04 ) != 0 )? 0x02: 0x00; //off_det
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] |= (( vreg_ctr[ VREG_C_COMMAND1 ] & 0x08 ) != 0 )? 0x20: 0x00; //batt_low
|
||||
vreg_twl[ REG_TWL_ADRS_IRQ ] |= (( vreg_ctr[ VREG_C_COMMAND1 ] & 0x10 ) != 0 )? 0x10: 0x00; //batt_empty
|
||||
return( ERR_FINISED );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -101,8 +101,8 @@ task_interval tsk_sys(){
|
||||
}
|
||||
|
||||
|
||||
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DIR, 0x00 );
|
||||
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, 0x00 );
|
||||
// iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DIR, 0x00 );
|
||||
// iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, 0x00 );
|
||||
|
||||
{
|
||||
PU7 = 0b00011101; // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC
|
||||
@ -123,17 +123,18 @@ task_interval tsk_sys(){
|
||||
MK2L= INT_MSK2L_RSV;
|
||||
|
||||
system_status.pwr_state = ON;
|
||||
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, 0x00 );
|
||||
|
||||
#ifdef _PMIC_TWL_
|
||||
{
|
||||
u8 temp;
|
||||
do{
|
||||
// do{
|
||||
temp = iic_mcu_write_a_byte( IIC_SLA_DCP, 0x08, 0x80 ); // ACR←0x80 揮発モードへ
|
||||
NOP();
|
||||
}while( temp != ERR_SUCCESS );
|
||||
// }while( temp != ERR_SUCCESS );
|
||||
}
|
||||
#endif
|
||||
accero_hosu_start();
|
||||
vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x01;
|
||||
renge_task_immed_add( acc_set );
|
||||
|
||||
break;
|
||||
|
||||
@ -166,10 +167,8 @@ task_interval tsk_sys(){
|
||||
|
||||
// pullup_off();
|
||||
{
|
||||
// PU5 = 0b00000011; // PM_CHG,PM_CHGERR
|
||||
// PU7 = 0b00011001; // SW_WiFi,PWSWI,PM_EXTTDC
|
||||
PU5 = 0b00000000;
|
||||
PU7 = 0b00001001; // PWSWI,PM_EXTDC
|
||||
PU5 = 0b00000011; // PM_CHG,PM_CHGERR
|
||||
PU7 = 0b00011001; // SW_WiFi,PWSWI,PM_EXTTDC
|
||||
}
|
||||
|
||||
// KRM = ( KR_SW_POW | KR_SW_WIFI ); // Mask ではなく、Modeなのだそうだ。紛らわしい
|
||||
|
||||
@ -13,11 +13,13 @@
|
||||
#define _debug_
|
||||
#ifdef _debug_
|
||||
|
||||
// 8ドットのLED
|
||||
#define IIC_SLA_8LEDS 0x42
|
||||
#define IIC_8LEDS_REG_DO 1
|
||||
#define IIC_8LEDS_REG_DI 2
|
||||
#define IIC_8LEDS_REG_DIR 3
|
||||
|
||||
// 7セグ 4バイト版
|
||||
#define IIC_SLA_DBG_MONITOR 0x44
|
||||
|
||||
#endif
|
||||
|
||||
@ -3,10 +3,11 @@
|
||||
CTR MCU I2Cレジスタ
|
||||
|
||||
====================================================== */
|
||||
#include "incs_loader.h"
|
||||
#include "incs.h"
|
||||
#include "vreg_ctr.h"
|
||||
#include "rtc.h"
|
||||
#include "led.h"
|
||||
#include "accero.h"
|
||||
|
||||
|
||||
|
||||
@ -24,7 +25,11 @@ u8 vreg_ctr[ VREG_C_ENDMARK_ ];
|
||||
// 非ゼロの初期値の指定が必要なアドレス
|
||||
void vreg_ctr_init(){
|
||||
vreg_ctr[ VREG_C_LED_BRIGHT ] = 0xFF;
|
||||
#ifdef _MCU_BSR_
|
||||
vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR + 0x10;
|
||||
#else
|
||||
vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR;
|
||||
#endif
|
||||
vreg_ctr[ VREG_C_MCU_VER_MINOR ] = MCU_VER_MINOR;
|
||||
}
|
||||
|
||||
@ -37,14 +42,23 @@ void vreg_ctr_init(){
|
||||
// 存在しないアドレスにアクセスした場合、何もしません。
|
||||
void vreg_ctr_write( u8 adrs, u8 data ){
|
||||
switch( adrs ){
|
||||
case( VREG_C_IRQ_MASK0 ):
|
||||
case( VREG_C_IRQ_MASK1 ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
break;
|
||||
|
||||
case( VREG_C_COMMAND0 ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
renge_task_immed_add( do_command0 );
|
||||
if( data != 0 ){
|
||||
renge_task_immed_add( do_command0 );
|
||||
}
|
||||
break;
|
||||
|
||||
case( VREG_C_COMMAND1 ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
renge_task_immed_add( do_command1 );
|
||||
if( data != 0 ){
|
||||
renge_task_immed_add( do_command1 );
|
||||
}
|
||||
break;
|
||||
|
||||
case( VREG_C_LED_BRIGHT ):
|
||||
@ -66,9 +80,6 @@ void vreg_ctr_write( u8 adrs, u8 data ){
|
||||
set_LED_cam();
|
||||
break;
|
||||
|
||||
case( VREG_C_RTC_CONFIG ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
break;
|
||||
case( VREG_C_RTC_COMP ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
SUBCUD = data;
|
||||
@ -88,14 +99,18 @@ void vreg_ctr_write( u8 adrs, u8 data ){
|
||||
case( VREG_C_ACC_CONFIG_HOSU ):
|
||||
case( VREG_C_ACC_CONFIG ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
renge_task_immed_add( acc_set );
|
||||
break;
|
||||
|
||||
case( VREG_C_ACC_R_ADRS ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
renge_task_immed_add( acc_read );
|
||||
|
||||
break;
|
||||
|
||||
case( VREG_C_ACC_W_ADRS ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
break;
|
||||
|
||||
case( VREG_C_ACC_W_BUF ):
|
||||
vreg_ctr[ adrs ] = data;
|
||||
renge_task_immed_add( acc_write );
|
||||
|
||||
@ -80,9 +80,9 @@ enum VREG_C{ //
|
||||
|
||||
VREG_C_STATUS,
|
||||
|
||||
VREG_C_RESERVE0,
|
||||
VREG_C_RESERVE1,
|
||||
VREG_C_RESERVE2,
|
||||
VREG_C_IRQ_MASK0,
|
||||
VREG_C_IRQ_MASK1,
|
||||
VREG_C_RESERVED0,
|
||||
|
||||
VREG_C_BT_REMAIN,
|
||||
VREG_C_SND_VOL,
|
||||
@ -110,7 +110,8 @@ enum VREG_C{ //
|
||||
VREG_C_VCS_B,
|
||||
|
||||
VREG_C_BT_TEMP,
|
||||
VREG_C_BL,
|
||||
|
||||
VREG_C_RESERVED1,
|
||||
|
||||
VREG_C_RTC_SEC,
|
||||
VREG_C_RTC_MIN,
|
||||
@ -119,7 +120,7 @@ enum VREG_C{ //
|
||||
VREG_C_RTC_DAY,
|
||||
VREG_C_RTC_MONTH,
|
||||
VREG_C_RTC_YEAR,
|
||||
VREG_C_RTC_CONFIG,
|
||||
VREG_C_RESERVED2,
|
||||
VREG_C_RTC_ALARM_MIN,
|
||||
VREG_C_RTC_ALARM_HOUR,
|
||||
VREG_C_RTC_ALARM_DAY,
|
||||
@ -130,19 +131,20 @@ enum VREG_C{ //
|
||||
VREG_C_ACC_CONFIG_HOSU,
|
||||
VREG_C_ACC_CONFIG,
|
||||
VREG_C_ACC_R_ADRS,
|
||||
// VREG_C_ACC_R_BUF,
|
||||
VREG_C_ACC_W_ADRS,
|
||||
VREG_C_ACC_BUF,
|
||||
VREG_C_ACC_W_BUF,
|
||||
|
||||
VREG_C_ACC_HOSU_L,
|
||||
VREG_C_ACC_HOSU_M,
|
||||
VREG_C_ACC_HOSU_H,
|
||||
|
||||
VREG_C_ACC_XH,
|
||||
VREG_C_ACC_XL,
|
||||
VREG_C_ACC_YH,
|
||||
VREG_C_ACC_XH,
|
||||
VREG_C_ACC_YL,
|
||||
VREG_C_ACC_ZH,
|
||||
VREG_C_ACC_YH,
|
||||
VREG_C_ACC_ZL,
|
||||
VREG_C_ACC_ZH,
|
||||
|
||||
VREG_C_DIAG,
|
||||
|
||||
|
||||
@ -17,8 +17,9 @@ u8 vreg_twl[ REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD +1 ];
|
||||
======================================================== */
|
||||
void vreg_twl_init(){
|
||||
vreg_twl[ REG_TWL_INT_ADRS_VER_INFO ] = 0x35;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] = 0x0F;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_POWER_SAVE ] = 0x07;
|
||||
// vreg_twl[ REG_TWL_INT_ADRS_BL ] = 0x03;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_BL ] = 0x03;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_CODEC_MIC_GAIN ] = 0x01;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_ADC_CALIB_STATUS ] = 0x01;
|
||||
vreg_twl[ REG_TWL_INT_ADRS_ADC_CALIB_VALUE ] = 0x60;
|
||||
@ -30,21 +31,47 @@ void vreg_twl_init(){
|
||||
// 引数 adrs は内部アドレス
|
||||
// 存在しないアドレスにアクセスした場合、何もしません。
|
||||
void vreg_twl_write( u8 adrs, u8 data ){
|
||||
switch( adrs ){
|
||||
case( REG_TWL_INT_ADRS_COMMAND ):
|
||||
case( REG_TWL_INT_ADRS_MODE ):
|
||||
case( REG_TWL_INT_ADRS_POWER_SAVE ):
|
||||
case( REG_TWL_INT_ADRS_WIFI ):
|
||||
case( REG_TWL_INT_ADRS_CAM ):
|
||||
case( REG_TWL_INT_ADRS_VOL ):
|
||||
case( REG_TWL_INT_ADRS_BL ):
|
||||
/*
|
||||
REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50,
|
||||
REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD,
|
||||
REG_TWL_INT_ADRS_ADC_CALIB, // 0x60,
|
||||
REG_TWL_INT_ADRS_ADC_CALIB_VALUE,
|
||||
REG_TWL_INT_ADRS_POWER_LED,
|
||||
*/
|
||||
case( REG_TWL_INT_ADRS_TEMP0 ):
|
||||
case( REG_TWL_INT_ADRS_TEMP1 ):
|
||||
case( REG_TWL_INT_ADRS_TEMP2 ):
|
||||
case( REG_TWL_INT_ADRS_TEMP3 ):
|
||||
case( REG_TWL_INT_ADRS_TEMP4 ):
|
||||
case( REG_TWL_INT_ADRS_TEMP5 ):
|
||||
case( REG_TWL_INT_ADRS_TEMP6 ):
|
||||
case( REG_TWL_INT_ADRS_TEMP7 ):
|
||||
// REG_TWL_INT_ADRS_TIME_PWSW_DELAY,
|
||||
// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD
|
||||
|
||||
if( REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD >= adrs ){ // アドレス範囲外
|
||||
vreg_twl[ adrs ] = data;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// TWLレジスタに書かれて何かアクションする
|
||||
switch( adrs ){
|
||||
case( REG_TWL_INT_ADRS_COMMAND ):
|
||||
if(( data & 0x01 ) != 0 ){
|
||||
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_TWL_RESET_REQ;
|
||||
IRQ0_ast;
|
||||
if( data != 0 ){
|
||||
renge_task_immed_add( command_from_twl );
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -129,3 +156,16 @@ u8 adrs_table_twl_ext2int( u8 img ){
|
||||
return( 0xFF );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
TWLからのコマンド
|
||||
・リセット
|
||||
・電源断
|
||||
======================================================== */
|
||||
task_status_immed command_from_twl(){
|
||||
vreg_ctr[ VREG_C_IRQ1 ] |= ( 1 << REG_BIT_TWL_RESET_REQ );
|
||||
IRQ0_ast;
|
||||
return( ERR_FINISED );
|
||||
}
|
||||
|
||||
@ -65,6 +65,7 @@ enum REG_TWL_ADRS_INT{
|
||||
REG_TWL_INT_ADRS_VOL, // 0x40,
|
||||
REG_TWL_INT_ADRS_BL,
|
||||
REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50,
|
||||
REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD,
|
||||
REG_TWL_INT_ADRS_ADC_CALIB, // 0x60,
|
||||
REG_TWL_INT_ADRS_ADC_CALIB_STATUS,
|
||||
REG_TWL_INT_ADRS_ADC_CALIB_VALUE,
|
||||
@ -82,6 +83,12 @@ enum REG_TWL_ADRS_INT{
|
||||
};
|
||||
|
||||
|
||||
#define REG_BIT_TWL_RESET_REQ 6
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ========================================================================= */
|
||||
extern u8 vreg_twl[ REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD +1 ];
|
||||
@ -104,6 +111,6 @@ void vreg_twl_write( u8 adrs, u8 data );
|
||||
u8 adrs_table_twl_ext2int( u8 img );
|
||||
u8 vreg_twl_read( u8 phy_adrs );
|
||||
|
||||
|
||||
task_status_immed command_from_twl();
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -533,11 +533,6 @@ DefaultMode2=1
|
||||
DefaultMode3=1
|
||||
DefaultMode4=1
|
||||
DefaultMode5=1
|
||||
[ToolSet]
|
||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||
Tool1=CC78K0R|W2.10
|
||||
Tool2=RA78K0R|W1.31
|
||||
Tool3=ID78K0R-QB|V3.60
|
||||
[Options.CC78K0R 0]
|
||||
Version=210
|
||||
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
@ -1022,13 +1017,17 @@ Include14=fsl_user.h
|
||||
Include15=i2c_ctr.h
|
||||
Include16=pm.h
|
||||
Include17=rtc.h
|
||||
Include18=magic.h
|
||||
Include19=adc.h
|
||||
Include20=led.h
|
||||
Include21=incs.h
|
||||
Include22=vreg_twl.h
|
||||
Include23=accero.h
|
||||
Include24=i2c_twl_defs.h
|
||||
Include18=adc.h
|
||||
Include19=led.h
|
||||
Include20=incs.h
|
||||
Include21=vreg_twl.h
|
||||
Include22=accero.h
|
||||
Include23=i2c_twl_defs.h
|
||||
Include24=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\assert.h
|
||||
Include25=renge\renge_task_intval.h
|
||||
Include26=i2c_twl.h
|
||||
Include27=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\assert.h
|
||||
[ToolSet]
|
||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||
Tool1=CC78K0R|W2.10
|
||||
Tool2=RA78K0R|W1.31
|
||||
Tool3=ID78K0R-QB|V3.60
|
||||
|
||||
@ -5,28 +5,32 @@ FrameY=9
|
||||
FrameCX=1375
|
||||
FrameCY=1183
|
||||
OpenFile1=vreg_ctr.h,0,88,88,1332,845,19,158,0,0
|
||||
OpenFile2=vreg_ctr.c,0,110,110,1354,867,0,158,0,0
|
||||
OpenFile3=incs_loader.h,0,198,198,1442,955,4,25,1,0
|
||||
OpenFile4=WDT.h,0,242,242,1486,999,40,4,40,0
|
||||
OpenFile5=renge\\..\incs.h,0,68,451,1312,1208,0,9,0,0
|
||||
OpenFile6=magic.c,0,307,203,1275,828,0,16,0,0
|
||||
OpenFile7=fsl_user.h,0,330,330,1574,1087,53,63,53,0
|
||||
OpenFile8=renge\renge_task_immediate.h,0,243,127,1487,884,0,1,0,0
|
||||
OpenFile9=renge\renge_defs.h,0,270,17,1514,774,0,13,0,0
|
||||
OpenFile10=vreg_twl.c,0,44,44,1288,801,34,30,34,0
|
||||
OpenFile11=renge\renge.c,0,270,117,1514,874,45,105,45,0
|
||||
OpenFile12=i2c_twl.c,0,110,110,1354,867,0,7,27,0
|
||||
OpenFile13=ProjectWindow
|
||||
OpenFile2=incs_loader.h,0,198,198,1442,955,4,25,1,0
|
||||
OpenFile3=WDT.h,0,242,242,1486,999,40,4,40,0
|
||||
OpenFile4=renge\\..\incs.h,0,68,451,1312,1208,0,9,0,0
|
||||
OpenFile5=magic.c,0,307,203,1275,828,0,15,0,0
|
||||
OpenFile6=fsl_user.h,0,330,330,1574,1087,53,63,53,0
|
||||
OpenFile7=renge\renge_task_immediate.h,0,243,127,1487,884,0,1,0,0
|
||||
OpenFile8=renge\renge_defs.h,0,270,17,1514,774,0,13,0,0
|
||||
OpenFile9=vreg_twl.c,0,44,44,1288,801,34,30,34,0
|
||||
OpenFile10=renge\renge.c,0,270,117,1514,874,45,105,45,0
|
||||
OpenFile11=tasks_sys.c,0,360,104,1068,950,63,126,63,0
|
||||
OpenFile12=adc.c,0,220,220,1464,977,48,79,0,0
|
||||
OpenFile13=renge\renge.h,0,352,352,1596,1109,0,7,0,0
|
||||
OpenFile14=led.c,0,166,57,1410,814,1,241,0,0
|
||||
OpenFile15=pm.c,0,213,107,1119,634,0,307,0,0
|
||||
OpenFile16=accero.c,0,132,132,1376,889,2,97,29,0
|
||||
OpenFile17=tasks.c,0,154,154,1398,911,0,92,0,0
|
||||
OpenFile18=pm.h,0,154,154,1398,911,15,63,15,0
|
||||
OpenFile19=loader.c,0,110,110,1121,842,0,174,0,0
|
||||
OpenFile20=vreg_ctr.c,0,110,110,1354,867,21,7,21,0
|
||||
OpenFile21=ProjectWindow
|
||||
PrjPos=0,0,752,0,250
|
||||
OpenFile14=adc.c,0,591,180,1474,977,48,79,0,0
|
||||
OpenFile15=pm.c,0,213,107,1119,634,0,530,2,0
|
||||
OpenFile16=tasks.c,0,154,154,1398,911,22,44,17,0
|
||||
OpenFile17=tasks_sys.c,0,360,104,1068,950,63,126,63,0
|
||||
OpenFile18=led.c,0,22,22,1266,779,5,250,5,0
|
||||
OpenFile19=adc.c,0,220,220,1464,977,15,63,15,0
|
||||
OpenFile20=renge\renge.h,0,352,352,1596,1109,0,7,0,0
|
||||
OpenFile21=OutputWindow
|
||||
OutputPos=0,508,1056,612,1473
|
||||
OpenFile22=config.h,0,176,176,1420,933,0,13,0,0
|
||||
OpenFile23=i2c_twl.c,0,264,63,1508,820,0,72,0,0
|
||||
OpenFile24=i2c_ctr.c,0,198,198,1442,955,2,176,0,0
|
||||
OpenFile25=OutputWindow
|
||||
OutputPos=0,283,1077,659,1520
|
||||
ActivePRJ=yav_mcu_bsr.prj
|
||||
[ProjectWindow]
|
||||
ProjectWindowDispType=0
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
[SdbInfo]
|
||||
Ver=5
|
||||
[loader.c]
|
||||
T=4a8a882b
|
||||
T=4a9b7c2e
|
||||
1=incs_loader.h
|
||||
2=fsl.h
|
||||
3=fsl_user.h
|
||||
@ -9,73 +9,74 @@ T=4a8a882b
|
||||
5=i2c_mcu.h
|
||||
6=pm.h
|
||||
7=rtc.h
|
||||
8=magic.h
|
||||
[pm.c]
|
||||
T=4a8a8a2a
|
||||
T=4a950fea
|
||||
1=incs_loader.h
|
||||
2=adc.h
|
||||
3=led.h
|
||||
4=pm.h
|
||||
[i2c_ctr.c]
|
||||
T=4a890e15
|
||||
1=incs_loader.h
|
||||
T=4a9b8168
|
||||
1=incs.h
|
||||
[main.c]
|
||||
T=4a8a882b
|
||||
T=4a9b2fe1
|
||||
1=incs.h
|
||||
2=WDT.h
|
||||
3=rtc.h
|
||||
4=pm.h
|
||||
5=accero.h
|
||||
[magic.c]
|
||||
T=4a8aa5e4
|
||||
T=4a9b83c9
|
||||
[WDT.c]
|
||||
T=4a30a4d7
|
||||
T=4a8bb921
|
||||
1=incs_loader.h
|
||||
[i2c_mcu.c]
|
||||
T=4a890e4a
|
||||
T=4a95d465
|
||||
1=incs_loader.h
|
||||
2=i2c_mcu.h
|
||||
[i2c_twl.c]
|
||||
T=4a7d2831
|
||||
T=4a9b5586
|
||||
1=incs.h
|
||||
2=i2c_twl_defs.h
|
||||
[ini_VECT.c]
|
||||
T=4a8a91dd
|
||||
1=config.h
|
||||
[led.c]
|
||||
T=4a8aa519
|
||||
T=4a8bbf14
|
||||
1=incs.h
|
||||
2=led.h
|
||||
[rtc.c]
|
||||
T=4a545e28
|
||||
T=4a8bbd28
|
||||
1=incs.h
|
||||
[vreg_ctr.c]
|
||||
T=4a8aa5e1
|
||||
1=incs_loader.h
|
||||
T=4a9b83c6
|
||||
1=incs.h
|
||||
2=vreg_ctr.h
|
||||
3=rtc.h
|
||||
4=led.h
|
||||
5=accero.h
|
||||
[vreg_twl.c]
|
||||
T=4a8a8348
|
||||
T=4a97560a
|
||||
1=incs.h
|
||||
2=jhl_defs.h
|
||||
3=vreg_twl.h
|
||||
[tasks.c]
|
||||
T=4a8a8a42
|
||||
T=4a953944
|
||||
1=incs.h
|
||||
[adc.c]
|
||||
T=4a8a658a
|
||||
T=4a963d0a
|
||||
1=incs_loader.h
|
||||
2=adc.h
|
||||
3=pm.h
|
||||
4=led.h
|
||||
5=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\assert.h
|
||||
[renge\renge.c]
|
||||
T=4a7d2b02
|
||||
1=renge\renge_task_intval.h
|
||||
2=renge\renge_task_immediate.h
|
||||
3=WDT.h
|
||||
[tasks_sys.c]
|
||||
T=4a8a8a58
|
||||
T=4a953573
|
||||
1=incs.h
|
||||
2=i2c_twl.h
|
||||
3=i2c_ctr.h
|
||||
@ -84,16 +85,16 @@ T=4a8a8a58
|
||||
6=pm.h
|
||||
7=rtc.h
|
||||
[accero.c]
|
||||
T=4a8a744b
|
||||
T=4a94f989
|
||||
1=incs.h
|
||||
[self_flash.c]
|
||||
T=4a892bc1
|
||||
T=4a8bba9e
|
||||
1=incs_loader.h
|
||||
2=fsl.h
|
||||
3=fsl_user.h
|
||||
4=i2c_ctr.h
|
||||
[incs_loader.h]
|
||||
T=4a7b6de3
|
||||
T=4a950ca2
|
||||
1=jhl_defs.h
|
||||
2=user_define.h
|
||||
3=bsr_system.h
|
||||
@ -103,12 +104,12 @@ T=4a7b6de3
|
||||
7=i2c_mcu.h
|
||||
8=WDT.h
|
||||
[jhl_defs.h]
|
||||
T=4a7d2831
|
||||
T=4a8bb83c
|
||||
[user_define.h]
|
||||
T=4a890dae
|
||||
T=4a951723
|
||||
1=config.h
|
||||
[config.h]
|
||||
T=4a8a794e
|
||||
T=4a9b5536
|
||||
[bsr_system.h]
|
||||
T=4a023057
|
||||
1=jhl_defs.h
|
||||
@ -122,14 +123,14 @@ T=4a5547e1
|
||||
T=4a8a7575
|
||||
1=renge\renge_defs.h
|
||||
[vreg_ctr.h]
|
||||
T=4a793427
|
||||
T=4a9b83a8
|
||||
[loader.h]
|
||||
T=4a7a31d0
|
||||
1=jhl_defs.h
|
||||
[i2c_mcu.h]
|
||||
T=4a7b93e4
|
||||
T=4a94fcc6
|
||||
[WDT.h]
|
||||
T=499ba30b
|
||||
T=4a8bb92f
|
||||
[fsl.h]
|
||||
T=47ec5c12
|
||||
[fsl_user.h]
|
||||
@ -137,18 +138,16 @@ T=4a7bf458
|
||||
[i2c_ctr.h]
|
||||
T=4a7c0777
|
||||
[pm.h]
|
||||
T=4a8a81a5
|
||||
T=4a9507ff
|
||||
[rtc.h]
|
||||
T=4a545899
|
||||
[magic.h]
|
||||
T=4a7a2fee
|
||||
T=4a8bbf80
|
||||
[adc.h]
|
||||
T=4a2e6395
|
||||
1=jhl_defs.h
|
||||
[led.h]
|
||||
T=4a8aa5ff
|
||||
[incs.h]
|
||||
T=4a797971
|
||||
T=4a8bb7e6
|
||||
1=jhl_defs.h
|
||||
2=user_define.h
|
||||
3=bsr_system.h
|
||||
@ -157,12 +156,14 @@ T=4a797971
|
||||
6=vreg_twl.h
|
||||
7=i2c_mcu.h
|
||||
[vreg_twl.h]
|
||||
T=49d2cf40
|
||||
T=4a973fd7
|
||||
[accero.h]
|
||||
T=4a4b15e2
|
||||
T=4a94f6c8
|
||||
1=jhl_defs.h
|
||||
[i2c_twl_defs.h]
|
||||
T=4a7c074e
|
||||
[..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\assert.h]
|
||||
T=440fd290
|
||||
[renge\renge_task_intval.h]
|
||||
T=4a78118b
|
||||
1=renge\renge_defs.h
|
||||
|
||||
Loading…
Reference in New Issue
Block a user