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