mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
0.14
音量が一時的に急に変わるのを修正 ADCのチャンネル切り替え後、割り込みフラグをクリアするのを忘れていた フルカラーお知らせランプの自動判別 そのため、ポートの初期化順なども一部変更 同、パラメータの受信フォーマットの変更 8MHz動作しかしないので、4MHz動作の#ifdefを削除 I2C_TWL 反応遅延が激しいので逐次タスクの削除周り修正、割り込み禁止区間を細切れにしたり git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@146 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
ce9ed926a0
commit
6bc39a3e62
14
trunk/adc.c
14
trunk/adc.c
@ -27,7 +27,7 @@ extern void nop8();
|
||||
|
||||
|
||||
// ===================================================== //
|
||||
#define INTERVAL_TSK_ADC 3
|
||||
#define INTERVAL_TSK_ADC 15
|
||||
|
||||
|
||||
|
||||
@ -169,7 +169,7 @@ void tsk_adc( )
|
||||
iic_mcu_write_a_byte( IIC_SLA_DCP, 0, slider_to_codec[ ( 255 - vol_old ) / 4 ] );
|
||||
#endif
|
||||
// set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 割り込み廃止
|
||||
force_update_vol = 200;
|
||||
force_update_vol = 10;
|
||||
}
|
||||
}
|
||||
|
||||
@ -255,7 +255,7 @@ __interrupt void int_adc( )
|
||||
static u8 hist_bt_temp[3];
|
||||
static u8 index;
|
||||
|
||||
EI( );
|
||||
// EI( );
|
||||
switch ( ADS )
|
||||
{
|
||||
/*
|
||||
@ -285,8 +285,13 @@ case ( ADC_SEL_AMB_BRIT ): //
|
||||
adc_raw_vol = ( 255 - getmean3( hist_snd_vol ));
|
||||
}
|
||||
#else
|
||||
adc_raw_vol = getmean3( hist_snd_vol );
|
||||
adc_raw_vol = getmean3( hist_snd_vol );
|
||||
#endif
|
||||
if( adc_raw_vol == 0 )
|
||||
{
|
||||
NOP();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ( ADC_SEL_BATT_TEMP ):
|
||||
@ -306,6 +311,7 @@ case ( ADC_SEL_AMB_BRIT ): //
|
||||
if( ADS != ADC_SEL_BATT_TEMP )
|
||||
{ // 電池判別は電源投入の一回のみ
|
||||
ADS += 1; // 次のチャンネル
|
||||
ADIF = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -43,6 +43,7 @@ typedef struct
|
||||
unsigned char dipsw1:1;
|
||||
unsigned char dipsw2:1;
|
||||
unsigned char reboot:1;
|
||||
unsigned char info_fullcolor:1;
|
||||
enum model_ model;
|
||||
}
|
||||
system_status_;
|
||||
|
||||
@ -6,9 +6,7 @@
|
||||
|
||||
|
||||
#define MCU_VER_MAJOR 0x00
|
||||
#define MCU_VER_MINOR 0x11
|
||||
|
||||
#define _OVERCLOCK_
|
||||
#define MCU_VER_MINOR 0x14
|
||||
|
||||
//#define PM_CCIC_TIM
|
||||
|
||||
@ -25,14 +23,12 @@
|
||||
#define _MODEL_CTR_
|
||||
// <20>ªTS board, WM1,1 TS-CTRC
|
||||
|
||||
//#define _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
#define _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
// <20>ªTS board, WM1,1 TS-CTRC
|
||||
|
||||
|
||||
// “ÁŽêŽd—l //
|
||||
//#define _SW_HOME_ENABLE_
|
||||
//#define _PARRADIUM_ 廃止
|
||||
//#define _PM_BUG_ // バグ持ち CTR PMIC 廃止
|
||||
#define _FOR_E3_
|
||||
|
||||
// ---------------------------------- //
|
||||
|
||||
@ -78,6 +78,7 @@ __interrupt void int_iic_ctr( )
|
||||
static u8 reg_adrs_internal;
|
||||
static u8 tx_buf;
|
||||
u8 rx_buf;
|
||||
static u8 adrs_access_from;
|
||||
|
||||
EI();
|
||||
|
||||
@ -145,6 +146,7 @@ __interrupt void int_iic_ctr( )
|
||||
case ( IIC_RCV_REG_ADRS ): // 2バイト目(レジスタアドレス)受信後に来る
|
||||
// レジスタアドレス受信
|
||||
reg_adrs = IICA;
|
||||
adrs_access_from = reg_adrs;
|
||||
tx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく
|
||||
if( reg_adrs != VREG_C_INFO )
|
||||
{
|
||||
@ -197,14 +199,16 @@ __interrupt void int_iic_ctr( )
|
||||
|
||||
// レジスタアドレスのインクリメント
|
||||
/// アクセスポインタを進めない特殊なレジスタ
|
||||
switch( reg_adrs )
|
||||
switch( adrs_access_from )
|
||||
{
|
||||
case( VREG_C_ACC_HOSU_HIST ):
|
||||
case( VREG_C_INFO ):
|
||||
case( VREG_C_FREE_DATA ):
|
||||
case( VREG_C_LED_NOTIFY_DATA ):
|
||||
case( VREG_C_LED_POW ):
|
||||
break;
|
||||
default:
|
||||
iic_burst_state = 0; // •ÛŒ¯
|
||||
reg_adrs += 1;
|
||||
}
|
||||
|
||||
|
||||
@ -570,13 +570,7 @@ void iic_mcu_start( )
|
||||
|
||||
SPS0 = 0x0000; // シリアルユニットのクロック0。(8M/2)/1
|
||||
SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // 簡易I2Cに設定
|
||||
#ifdef _OVERCLOCK_
|
||||
// todo
|
||||
// SDR02 = 12 << 9; // ボーレート設定 8M/1/(x+1)/2
|
||||
SDR02 = 13 << 9; // ボーレート設定 (8M/2)/1/(x+1)/2
|
||||
#else
|
||||
SDR02 = 5 << 9; // ボーレート設定 (8M/2)/1/(x+1)/2
|
||||
#endif
|
||||
SDR02 = 10 << 9; // ボーレート設定 8M/1/(x+1)/2
|
||||
|
||||
SO0 = 0x0404 | TAUS_MASK; // 最初はHH
|
||||
iic_mcu_busy = 0;
|
||||
|
||||
@ -70,10 +70,11 @@ u16 tot;
|
||||
|
||||
// 注! ↓はマクロなので、returnはメインループに戻ります。
|
||||
#define wait_next { \
|
||||
tot = 0; \
|
||||
tot = 0; \
|
||||
while( IICAIF != 1 ){ \
|
||||
if( SPD ){ \
|
||||
LREL = 1; \
|
||||
NOP(); \
|
||||
return; \
|
||||
} \
|
||||
tot++; \
|
||||
@ -105,8 +106,8 @@ __interrupt void int_iic_twl( )
|
||||
wait_next; // 1バイト受信完了を待つ
|
||||
|
||||
// 2回目 R/W レジスタアドレス
|
||||
temp = IICA;
|
||||
IICAIF = 0;
|
||||
temp = IICA;
|
||||
WREL = 1;
|
||||
|
||||
vreg_adrs = adrs_table_twl_ext2int( temp );
|
||||
|
||||
73
trunk/led.c
73
trunk/led.c
@ -34,55 +34,7 @@ static void led_pow_hotaru( );
|
||||
|
||||
// ========================================================
|
||||
// お知らせLEDのパターンデータ
|
||||
uni_info_LED info_LED = {
|
||||
32, // 1フレームの長さ
|
||||
32, // グラデーション時間
|
||||
0, // 最終フレームをn回繰り返す
|
||||
0, // 予備
|
||||
{
|
||||
{255, 0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
|
||||
{0,255,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
|
||||
{0,0,255},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
|
||||
{255,255,255},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
{0,0,0},
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//調光可能LEDのワークというか
|
||||
st_LED_dim_status LED_dim_status_pow_B;
|
||||
st_LED_dim_status LED_dim_status_3D;
|
||||
st_LED_dim_status LED_dim_status_WiFi;
|
||||
uni_info_LED info_LED;
|
||||
|
||||
|
||||
// 赤LEDの電池残量LEDの点滅パターン
|
||||
@ -507,24 +459,29 @@ void tsk_led_notify( )
|
||||
// 次のフレームに進める?
|
||||
if( time_to_next_frame == 0 )
|
||||
{
|
||||
st_info_LED_ptn temp;
|
||||
|
||||
time_to_next_frame = info_LED.info_LED.term;
|
||||
|
||||
frame += 1;
|
||||
// 最後のフレームリピート
|
||||
if( frame > NOTIFY_LED_TERM + info_LED.info_LED.last_loop )
|
||||
if( frame > NOTIFY_LED_TERM )
|
||||
{
|
||||
frame = 0;
|
||||
if( !info_LED.info_LED.last_loop )
|
||||
{
|
||||
frame = 0;
|
||||
vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP;
|
||||
}
|
||||
else
|
||||
{
|
||||
frame = NOTIFY_LED_TERM;
|
||||
vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP;
|
||||
}
|
||||
}
|
||||
|
||||
if( frame < NOTIFY_LED_TERM )
|
||||
{
|
||||
temp = info_LED.info_LED.ptn[ frame ];
|
||||
|
||||
LED_dim_status_info_R.to = temp.red * 128;
|
||||
LED_dim_status_info_G.to = temp.grn * 128;
|
||||
LED_dim_status_info_B.to = temp.blu * 128;
|
||||
LED_dim_status_info_R.to = info_LED.info_LED.red[frame] * 128;
|
||||
LED_dim_status_info_G.to = info_LED.info_LED.grn[frame] * 128;
|
||||
LED_dim_status_info_B.to = info_LED.info_LED.blu[frame] * 128;
|
||||
|
||||
// グラデーションのデルタを計算
|
||||
LED_dim_status_info_R.delta = (( LED_dim_status_info_R.to - LED_dim_status_info_R.now ) ) / info_LED.info_LED.fade_time;
|
||||
|
||||
23
trunk/led.h
23
trunk/led.h
@ -7,12 +7,14 @@
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
|
||||
// LED_DUTY
|
||||
#define LED_duty_pow_blu TDR06
|
||||
#define LED_duty_WiFi TDR03
|
||||
#define LED_duty_pow_blu TDR05
|
||||
#define LED_duty_WiFi TDR02
|
||||
|
||||
#define LED_duty_3d TDR01
|
||||
#define LED_duty_notify_red TDR07
|
||||
#define LED_duty_notify_grn TDR05
|
||||
#define LED_duty_notify_blu TDR02
|
||||
#define LED_duty_notify_grn TDR03
|
||||
#define LED_duty_notify_blu TDR06
|
||||
|
||||
|
||||
// これらはduty変えられません
|
||||
#define LED_pow_red P7.5
|
||||
@ -100,18 +102,14 @@ enum
|
||||
|
||||
|
||||
// お知らせLED調光関係 //
|
||||
typedef struct{
|
||||
u8 red;
|
||||
u8 grn;
|
||||
u8 blu;
|
||||
}st_info_LED_ptn;
|
||||
|
||||
typedef struct{
|
||||
u8 term; // 1フレーム何チック?
|
||||
u8 fade_time; // 何チックで次のフレームの色に達するか
|
||||
u8 last_loop; // 最終フレームを
|
||||
u8 resv1;
|
||||
st_info_LED_ptn ptn[ NOTIFY_LED_TERM ];
|
||||
u8 red[32];
|
||||
u8 grn[32];
|
||||
u8 blu[32];
|
||||
}st_info_LED;
|
||||
|
||||
typedef union{
|
||||
@ -122,7 +120,7 @@ typedef union{
|
||||
extern uni_info_LED info_LED;
|
||||
|
||||
|
||||
|
||||
// 赤LED 点滅向け //
|
||||
typedef struct{
|
||||
u8 dats[4];
|
||||
}st_u8s4;
|
||||
@ -132,7 +130,6 @@ typedef union{
|
||||
st_u8s4 dats;
|
||||
}uni_led_red_batt_empty;
|
||||
|
||||
|
||||
extern uni_led_red_batt_empty led_red_batt_empty;
|
||||
|
||||
|
||||
|
||||
@ -159,11 +159,7 @@ void hdwinit( void )
|
||||
#ifdef _MCU_BSR_
|
||||
OSMC = 0x01; /* 隠しレジスタ */
|
||||
#endif
|
||||
#ifdef _OVERCLOCK_
|
||||
CKC = 0b00001000; /* CPU/周辺クロック=fMAIN、fMAIN=fMX、fCLK=fMX */
|
||||
#else
|
||||
// CKC デフォルトでよい
|
||||
#endif
|
||||
|
||||
/*--- 低電圧検出回路の設定 ---*/
|
||||
/* リセット解除時のデフォルトは、オプション・バイトにて指定される */
|
||||
@ -207,6 +203,43 @@ void hdwinit2( )
|
||||
P14 = 0b00000000;
|
||||
}
|
||||
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
PM20 = 0b11111100;
|
||||
#else
|
||||
PM8 = 0b11111111;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
P20 = 0b00000000;
|
||||
#else
|
||||
P8 = 0b00000000;
|
||||
#endif
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
# ifdef _MODEL_CTR_
|
||||
# ifdef _SW_HOME_ENABLE_
|
||||
PU20 = 0b00010101;
|
||||
# else
|
||||
PU20 = 0b00000101;
|
||||
# endif
|
||||
# else
|
||||
PU20 = 0b00000100;
|
||||
# endif
|
||||
if( !INFO_LED_IS_FULLCOLOR_n )
|
||||
{
|
||||
system_status.info_fullcolor = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
system_status.info_fullcolor = 0;
|
||||
}
|
||||
INFO_LED_IS_FULLCOLOR_PM = 0;
|
||||
INFO_LED_IS_FULLCOLOR_PU = 0;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
PM0 = 0b11111111; // BSRマイコンでは、reset1は監視のみになる。
|
||||
#else
|
||||
@ -222,13 +255,6 @@ void hdwinit2( )
|
||||
P6 = 0b00000000;
|
||||
P7 = 0b01000000;
|
||||
P12 = 0b00000000;
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
P20 = 0b00000000;
|
||||
#else
|
||||
P8 = 0b00000000;
|
||||
#endif
|
||||
|
||||
P15 = 0b00000000;
|
||||
|
||||
|
||||
@ -236,15 +262,10 @@ void hdwinit2( )
|
||||
PM2 = 0b11101001;
|
||||
|
||||
#ifdef _PMIC_CTR_
|
||||
# ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
PM4 = 0b11110011;
|
||||
# else
|
||||
PM4 = 0b11110111;
|
||||
# endif
|
||||
#else
|
||||
PM4 = 0b11111011;
|
||||
#endif
|
||||
|
||||
PM5 = 0b11110010;
|
||||
PM6 = 0b11111100; // I2CのラインがL出力になってしまうが、システムがOFFなのでかまわない
|
||||
#ifdef _PMIC_CTR_
|
||||
@ -255,12 +276,6 @@ void hdwinit2( )
|
||||
PM12 = 0b11111111; // 32kHzクロックのピン設定はどっちでもよい
|
||||
PM15 = 0b11111111;
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
PM20 = 0b11111100;
|
||||
#else
|
||||
PM8 = 0b11111111;
|
||||
#endif
|
||||
|
||||
// プルアップ /////////////////////////////////////////
|
||||
PU0 = 0b00000000; // バッテリ認証後にそれぞれセット
|
||||
PU1 = 0b00000000;
|
||||
@ -271,17 +286,6 @@ void hdwinit2( )
|
||||
PU12 = 0b00000000;
|
||||
PU14 = 0b00000000;
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
# ifdef _MODEL_CTR_
|
||||
# ifdef _SW_HOME_ENABLE_
|
||||
PU20 = 0b00010001;
|
||||
# else
|
||||
PU20 = 0b00000001;
|
||||
# endif
|
||||
# else
|
||||
PU20 = 0b00000000;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// ポート入力モード・レジスタ設定 /////////////////////
|
||||
// [0:通常入力バッファ 1:TTL入力バッファ]
|
||||
|
||||
@ -265,7 +265,7 @@ static void hosu_increment()
|
||||
u8 temp;
|
||||
|
||||
temp = p_record;
|
||||
if( now_min < vreg_ctr[ VREG_C_ACC_HOSU_ORIGIN ] )
|
||||
if( now_min < vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] )
|
||||
{
|
||||
temp -= 1;
|
||||
if( PEDOMETER_LOG_SIZE >= temp )
|
||||
|
||||
@ -487,6 +487,8 @@ task_status_immed ntr_pmic_comm( )
|
||||
}
|
||||
}
|
||||
|
||||
EI();
|
||||
|
||||
vreg_ctr[ VREG_C_STATUS_1 ] = ( vreg_ctr[ VREG_C_STATUS_1 ] & ~0x0C ) | ( reg_shadow & 0x0C ); // TWLバックライト情報のミラー
|
||||
|
||||
#ifdef _type1_
|
||||
|
||||
@ -193,11 +193,16 @@ err renge_task_immed_run(){
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if( tasks_immed[ list_id ]() == ERR_SUCCESS )
|
||||
u8 temp;
|
||||
|
||||
temp = tasks_immed[ list_id ]();
|
||||
DI();
|
||||
if( temp == ERR_SUCCESS )
|
||||
{
|
||||
tasks_immed[ list_id ] = TSK_IMM_DELETED_;
|
||||
}
|
||||
last_task_id = list_id;
|
||||
EI();
|
||||
}
|
||||
}
|
||||
#ifdef _renge_test_
|
||||
@ -221,12 +226,6 @@ err renge_task_immed_run(){
|
||||
if( last_task_id != 0xFF )
|
||||
{
|
||||
u8 i,j;
|
||||
|
||||
#ifdef _renge_test_
|
||||
if ( tasks_immed[ 1 ] != 0 ){
|
||||
NOP();
|
||||
}
|
||||
#endif
|
||||
// リスト前詰め
|
||||
|
||||
i = 0; // 前詰め後リストの最後尾
|
||||
@ -254,7 +253,6 @@ err renge_task_immed_run(){
|
||||
}
|
||||
}
|
||||
#endif
|
||||
EI();
|
||||
break;
|
||||
}
|
||||
if( tasks_immed[ j ] != TSK_IMM_DELETED_ )
|
||||
@ -287,7 +285,6 @@ err renge_task_immed_run(){
|
||||
// リストの最後だった
|
||||
}
|
||||
}
|
||||
DI();
|
||||
|
||||
// ここまでで完全に前詰めされている
|
||||
for( j = 0; j < TASK_IMMED_RUN_LIST_MAX; j++ )
|
||||
@ -295,7 +292,6 @@ err renge_task_immed_run(){
|
||||
if( tasks_immed[ j ] == TSK_IMM_EMPTY_ )
|
||||
{
|
||||
#ifdef _renge_test_
|
||||
NOP();
|
||||
j += 1;
|
||||
for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ )
|
||||
{
|
||||
@ -308,13 +304,15 @@ err renge_task_immed_run(){
|
||||
break;
|
||||
// リストの最後
|
||||
}
|
||||
DI();
|
||||
if( tasks_immed[ j ] == TSK_IMM_DELETED_ )
|
||||
{
|
||||
tasks_immed[ j ] = TSK_IMM_EMPTY_;
|
||||
}
|
||||
EI();
|
||||
}
|
||||
EI();
|
||||
}
|
||||
EI();
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
@ -347,11 +345,7 @@ void wait_ms( u8 ms ){
|
||||
// まだ適当です!
|
||||
while( ms != 0 ){
|
||||
ms--;
|
||||
#ifdef _OVERCLOCK_
|
||||
fine = 860;
|
||||
#else
|
||||
fine = 430;
|
||||
#endif
|
||||
while( fine != 0 ){
|
||||
fine -= 1;
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ void tsk_debug( )
|
||||
|
||||
|
||||
// 7セグ 4バイト版
|
||||
# define IIC_SLA_DBG_MONITOR 0x24
|
||||
# define IIC_SLA_DBG_MONITOR 0x44
|
||||
|
||||
void tsk_debug2( )
|
||||
{
|
||||
@ -68,7 +68,7 @@ void tsk_debug2( )
|
||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] );
|
||||
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
|
||||
|
||||
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] );
|
||||
// iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] );
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
|
||||
|
||||
#define IIC_SLA_CODEC 0xA4
|
||||
#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH
|
||||
#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH
|
||||
|
||||
|
||||
// PMxは0で出力モード
|
||||
@ -260,6 +260,14 @@
|
||||
#define KR_SW_WIFI ( 1 << 4 )
|
||||
|
||||
|
||||
#define INFO_LED_IS_FULLCOLOR_n P20.2
|
||||
#define INFO_LED_IS_FULLCOLOR_PM PM20.2
|
||||
#define INFO_LED_IS_FULLCOLOR_PU PU20.2
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
#define INT_MSK0_IIC_M_DMA 0b0001000000000000
|
||||
#define INT_MSK0_SHELL 0b0000000010000000
|
||||
#define INT_MSK0_EXTDC 0b0000000001000000
|
||||
|
||||
@ -62,9 +62,6 @@ void vreg_ctr_init( )
|
||||
// を使用しないと、I2C_mcu使用中でエラー終了した場合にリトライしません。
|
||||
void vreg_ctr_write( u8 adrs, u8 data )
|
||||
{
|
||||
if( adrs >= VREG_C_ENDMARK_ )
|
||||
return;
|
||||
|
||||
switch ( adrs )
|
||||
{
|
||||
|
||||
@ -160,6 +157,18 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
break;
|
||||
|
||||
case ( VREG_C_LED_POW ):
|
||||
if( iic_burst_state == 0 )
|
||||
{
|
||||
vreg_ctr[adrs] = data;
|
||||
iic_burst_state += 1;
|
||||
}
|
||||
else if( iic_burst_state < 5 )
|
||||
{
|
||||
led_red_batt_empty.dats.dats[ iic_burst_state -1 ] = data;
|
||||
iic_burst_state += 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( VREG_C_LED_WIFI ):
|
||||
case ( VREG_C_LED_CAM ):
|
||||
case ( VREG_C_LED_TUNE ):
|
||||
@ -167,24 +176,12 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
break;
|
||||
|
||||
case ( VREG_C_LED_NOTIFY_DATA ):
|
||||
if( iic_burst_state == 0 )
|
||||
if( iic_burst_state < sizeof( uni_info_LED ) )
|
||||
{
|
||||
iic_burst_state += 1;
|
||||
vreg_ctr[adrs] = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( iic_burst_state > sizeof( uni_info_LED ) )
|
||||
{
|
||||
iic_burst_state = 1;
|
||||
}
|
||||
info_LED.bindata[ iic_burst_state -1 ] = data;
|
||||
info_LED.bindata[ iic_burst_state ] = data;
|
||||
iic_burst_state += 1;
|
||||
}
|
||||
|
||||
case ( VREG_C_LED_NOTIFY_OPTION ):
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
/// 非同期で動いているためここでは書かない。
|
||||
// 予約するだけでstopで書く
|
||||
@ -274,7 +271,7 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
}
|
||||
break;
|
||||
|
||||
case ( VREG_C_ACC_HOSU_ORIGIN ):
|
||||
case ( VREG_C_ACC_HOSU_HOUR_BOUNDARY ):
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
@ -305,17 +302,8 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
}
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
case( VREG_C_BATT_EMPTY_PATTERN ):
|
||||
{
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
if( iic_burst_state < 4 )
|
||||
{
|
||||
led_red_batt_empty.dats.dats[ iic_burst_state ] = data;
|
||||
iic_burst_state += 1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return;
|
||||
@ -427,14 +415,14 @@ void set_irq( u8 irqreg, u8 irq_flg )
|
||||
{
|
||||
u8 tot;
|
||||
|
||||
DI();
|
||||
// DI();
|
||||
if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ){
|
||||
vreg_ctr[ irqreg ] |= irq_flg;
|
||||
IRQ0_neg; // 一瞬上げて落とし直す。
|
||||
IRQ0_neg; // 一瞬上げて...
|
||||
// EI();
|
||||
tot = 0;
|
||||
while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.なのでちゃんとあがるのを待つ & IRQ_mcu がLに縛られてると困る(基板不良)
|
||||
IRQ0_ast;
|
||||
IRQ0_ast; // 落とし直す。
|
||||
}
|
||||
EI();
|
||||
// EI();
|
||||
}
|
||||
|
||||
@ -120,6 +120,11 @@
|
||||
#define REG_BIT_TWL_REQ_RESET ( 1 << 0 )
|
||||
|
||||
|
||||
|
||||
// VREG_C_LED_NOTIFY_FLAG
|
||||
#define REG_BIT_IN_LOOP ( 1 << 0 )
|
||||
|
||||
|
||||
/*
|
||||
ƒeƒ“ƒvƒŒ
|
||||
#define REG_BIT_ ( 1 << 7 )
|
||||
@ -189,7 +194,6 @@ enum VREG_C
|
||||
VREG_C_LED_CAM,
|
||||
VREG_C_LED_TUNE,
|
||||
VREG_C_LED_NOTIFY_DATA,
|
||||
VREG_C_LED_NOTIFY_OPTION,
|
||||
VREG_C_LED_NOTIFY_FLAG,
|
||||
|
||||
VREG_C_RTC_SEC = 0x30,
|
||||
@ -211,8 +215,6 @@ enum VREG_C
|
||||
VREG_C_RTC_SEC_FINE_L,
|
||||
VREG_C_RTC_SEC_FINE_H,
|
||||
|
||||
VREG_C_ACC_HOSU_ORIGIN,
|
||||
|
||||
VREG_C_ACC_CONFIG = 0x40,
|
||||
VREG_C_ACC_R_ADRS,
|
||||
VREG_C_ACC_RESERVE,
|
||||
@ -231,12 +233,13 @@ enum VREG_C
|
||||
VREG_C_ACC_HOSU_H,
|
||||
VREG_C_ACC_HOSU_SETTING,
|
||||
VREG_C_ACC_HOSU_HIST = 0x4F,
|
||||
VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50,
|
||||
|
||||
VREG_C_FREE_ADRS = 0x50,
|
||||
// とりあえず15バイトのスキマ
|
||||
|
||||
VREG_C_FREE_ADRS = 0x60,
|
||||
VREG_C_FREE_DATA,
|
||||
|
||||
VREG_C_BATT_EMPTY_PATTERN,
|
||||
|
||||
VREG_C_ENDMARK_
|
||||
};
|
||||
#define VREG_C_INFO 0x7F
|
||||
|
||||
@ -141,8 +141,8 @@ u8 adrs_table_twl_ext2int( u8 img )
|
||||
case( REG_TWL_ADRS_IRQ ): return( REG_TWL_INT_ADRS_IRQ );
|
||||
case( REG_TWL_ADRS_COMMAND ): return( REG_TWL_INT_ADRS_COMMAND );
|
||||
case( REG_TWL_ADRS_POWER_INFO ): return( REG_TWL_INT_ADRS_POWER_INFO );
|
||||
case( REG_TWL_ADRS_CAM ): return( REG_TWL_INT_ADRS_CAM );
|
||||
case( REG_TWL_ADRS_VOL ): return( REG_TWL_INT_ADRS_VOL );
|
||||
case( REG_TWL_ADRS_CAM ): return( REG_TWL_INT_ADRS_CAM );
|
||||
case( REG_TWL_ADRS_TEMP0 ): return( REG_TWL_INT_ADRS_TEMP0 );
|
||||
case( REG_TWL_ADRS_VER_INFO ): return( REG_TWL_INT_ADRS_VER_INFO );
|
||||
case( REG_TWL_ADRS_MODE ): return( REG_TWL_INT_ADRS_MODE );
|
||||
|
||||
@ -112,114 +112,6 @@ ZF=0
|
||||
S=1
|
||||
E=0
|
||||
CommandFile=0
|
||||
[Options.RA78K0R 0]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 1]
|
||||
Version=100
|
||||
G=0
|
||||
GA=0
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 2]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 3]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 4]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 5]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.LCNV78K0R 0]
|
||||
Version=100
|
||||
LCNV_GO=0
|
||||
@ -502,16 +394,6 @@ ZB=
|
||||
Etcetera0=
|
||||
Etcetera1=boot.lmf
|
||||
CommandFile=0
|
||||
[Options.78K0R]
|
||||
BuildMode=2
|
||||
BuildMode2=K0R_dbg
|
||||
BuildMode3=BSR_dbg
|
||||
BuildMode4=BSR_rel
|
||||
BuildMode5=BSR_WM0
|
||||
DefaultMode2=1
|
||||
DefaultMode3=1
|
||||
DefaultMode4=1
|
||||
DefaultMode5=1
|
||||
[BuildBefore-AfterCmd]
|
||||
Before1=touch magic.c
|
||||
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
|
||||
@ -574,6 +456,129 @@ Include31=sw.h
|
||||
Include32=self_flash.h
|
||||
Include33=pool.h
|
||||
Include34=pedo_lpf_coeff.h
|
||||
[ToolSet]
|
||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||
Tool1=CC78K0R|W2.10
|
||||
Tool2=RA78K0R|W1.31
|
||||
Tool3=ID78K0R-QB|V3.60
|
||||
[Options.RA78K0R 0]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 1]
|
||||
Version=100
|
||||
G=0
|
||||
GA=0
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 2]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 3]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 4]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.RA78K0R 5]
|
||||
Version=100
|
||||
G=1
|
||||
GA=1
|
||||
E=0
|
||||
COMMON=0
|
||||
COMPATI=0
|
||||
P=1
|
||||
KA=1
|
||||
KS=0
|
||||
KX=0
|
||||
LF=0
|
||||
LW=132
|
||||
LL=0
|
||||
LT=8
|
||||
Z=0
|
||||
CommandFile=0
|
||||
RA_OPT=
|
||||
[Options.78K0R]
|
||||
BuildMode=2
|
||||
BuildMode2=K0R_dbg
|
||||
BuildMode3=BSR_dbg
|
||||
BuildMode4=BSR_rel
|
||||
BuildMode5=BSR_WM0
|
||||
DefaultMode2=1
|
||||
DefaultMode3=1
|
||||
DefaultMode4=1
|
||||
DefaultMode5=1
|
||||
[Options.CC78K0R 0]
|
||||
Version=210
|
||||
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
@ -750,7 +755,7 @@ Unsignedchar=0
|
||||
Usesaddrchk=0
|
||||
Autoallocationchk=1
|
||||
Jumpoptimize=1
|
||||
Librarycallchk=1
|
||||
Librarycallchk=0
|
||||
Librarycall=1129
|
||||
Aggressivechk=1
|
||||
Relativebranchchk=1
|
||||
@ -801,88 +806,6 @@ VfiFileBoot0=
|
||||
VfiFileBoot1=boot.vfi
|
||||
VF78K0Rchk=0
|
||||
VF78K0Rvs=
|
||||
[Options.CC78K0R 2 led.c]
|
||||
Version=210
|
||||
Define0=
|
||||
Define1=_debug_,_TEG_,proc_is_ke3
|
||||
Define2=_debug_,_TEG_,proc_is_ke3,%time%
|
||||
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include2=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include3=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include4=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Memorymodel=1
|
||||
Flashobj=0
|
||||
FlashStartadr=
|
||||
FlashBranchStartadr=
|
||||
Mirror=0
|
||||
Saddrglobalchk=0
|
||||
Saddrglobal=1066
|
||||
Saddrstaticchk=0
|
||||
Saddrstatic=1072
|
||||
Bitfieldmsb=0
|
||||
Onebytechk=0
|
||||
Pacstructchk=0
|
||||
AssignROMchk=0
|
||||
AssignROM=0
|
||||
Maxoptimizechk=0
|
||||
Maxoptimize=1104
|
||||
Charunexpandchk=0
|
||||
Unsignedchar=0
|
||||
Usesaddrchk=0
|
||||
Autoallocationchk=1
|
||||
Jumpoptimize=1
|
||||
Librarycallchk=1
|
||||
Librarycall=1132
|
||||
Aggressivechk=1
|
||||
Relativebranchchk=1
|
||||
Debugoptchk=0
|
||||
Outdebugchk=1
|
||||
Outdebug=1153
|
||||
Outasmsrccmb0=inter_asm
|
||||
Outasmsrccmb1=bsr.asm
|
||||
Outasmsrcchk=1
|
||||
Outasmsrc=1158
|
||||
Outasmoptall=1
|
||||
Common=0
|
||||
Outerrlistchk=0
|
||||
Outerrlist=1174
|
||||
Xreference=0
|
||||
Preprocess=0
|
||||
Prenocomment=0
|
||||
Predefine=0
|
||||
Preifdef=1
|
||||
Preinclude=1
|
||||
Preline=1
|
||||
Prenumber=1
|
||||
Formfeed=0
|
||||
Columns=132
|
||||
Lines=0
|
||||
Tablength=8
|
||||
Ansi=0
|
||||
Cpraspras=1
|
||||
Commentnest=0
|
||||
Intunexpand=0
|
||||
Kanjicode=1210
|
||||
Verbose=0
|
||||
CommandFile=0
|
||||
Warninglevel=1
|
||||
Startupchk=1
|
||||
Fixation=0
|
||||
FarROMization=0
|
||||
Objectsel=1305
|
||||
Librarychk=1
|
||||
Floatingpoint=0
|
||||
Muldivunit=1
|
||||
Mulunit=1
|
||||
Startup=s0rm.rel
|
||||
Library1=cl0rdm.lib
|
||||
Library2=cl0rm.lib
|
||||
Library3=cl0rmf.lib
|
||||
VfiFileBoot0=
|
||||
VfiFileBoot1=boot.vfi
|
||||
VF78K0Rchk=0
|
||||
VF78K0Rvs=
|
||||
[Options.CC78K0R 3]
|
||||
Version=210
|
||||
Define0=_debug_,proc_is_bsr,_TEG_
|
||||
@ -1122,89 +1045,3 @@ VfiFileBoot0=
|
||||
VfiFileBoot1=boot.vfi
|
||||
VF78K0Rchk=0
|
||||
VF78K0Rvs=
|
||||
[Options.CC78K0R 2 pm.c]
|
||||
Version=210
|
||||
Define0=
|
||||
Define1=_debug_,_TEG_,proc_is_ke3
|
||||
Define2=_debug_,_TEG_,proc_is_ke3,%time%
|
||||
Define3=_TEG_,proc_is_ke3
|
||||
Define4=proc_is_ke3
|
||||
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Memorymodel=1
|
||||
Flashobj=0
|
||||
FlashStartadr=
|
||||
FlashBranchStartadr=
|
||||
Mirror=0
|
||||
Saddrglobalchk=0
|
||||
Saddrglobal=1066
|
||||
Saddrstaticchk=0
|
||||
Saddrstatic=1072
|
||||
Bitfieldmsb=0
|
||||
Onebytechk=0
|
||||
Pacstructchk=0
|
||||
AssignROMchk=0
|
||||
AssignROM=0
|
||||
Maxoptimizechk=0
|
||||
Maxoptimize=1104
|
||||
Charunexpandchk=0
|
||||
Unsignedchar=0
|
||||
Usesaddrchk=0
|
||||
Autoallocationchk=1
|
||||
Jumpoptimize=1
|
||||
Librarycallchk=1
|
||||
Librarycall=1132
|
||||
Aggressivechk=1
|
||||
Relativebranchchk=1
|
||||
Debugoptchk=0
|
||||
Outdebugchk=1
|
||||
Outdebug=1153
|
||||
Outasmsrccmb0=inter_asm
|
||||
Outasmsrccmb1=bsr.asm
|
||||
Outasmsrcchk=1
|
||||
Outasmsrc=1158
|
||||
Outasmoptall=1
|
||||
Common=0
|
||||
Outerrlistchk=0
|
||||
Outerrlist=1174
|
||||
Xreference=0
|
||||
Preprocess=0
|
||||
Prenocomment=0
|
||||
Predefine=0
|
||||
Preifdef=1
|
||||
Preinclude=1
|
||||
Preline=1
|
||||
Prenumber=1
|
||||
Formfeed=0
|
||||
Columns=132
|
||||
Lines=0
|
||||
Tablength=8
|
||||
Ansi=0
|
||||
Cpraspras=1
|
||||
Commentnest=0
|
||||
Intunexpand=0
|
||||
Kanjicode=1210
|
||||
Verbose=0
|
||||
CommandFile=0
|
||||
Warninglevel=1
|
||||
Startupchk=1
|
||||
Fixation=0
|
||||
FarROMization=0
|
||||
Objectsel=1305
|
||||
Librarychk=1
|
||||
Floatingpoint=0
|
||||
Muldivunit=1
|
||||
Mulunit=1
|
||||
Startup=s0rm.rel
|
||||
Library1=cl0rdm.lib
|
||||
Library2=cl0rm.lib
|
||||
Library3=cl0rmf.lib
|
||||
VfiFileBoot0=
|
||||
VfiFileBoot1=boot.vfi
|
||||
VF78K0Rchk=0
|
||||
VF78K0Rvs=
|
||||
[ToolSet]
|
||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||
Tool1=CC78K0R|W2.10
|
||||
Tool2=RA78K0R|W1.31
|
||||
Tool3=ID78K0R-QB|V3.60
|
||||
|
||||
Loading…
Reference in New Issue
Block a user