mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
フルからーLEDマージ中
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@147 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
6bc39a3e62
commit
83f69cc519
@ -106,9 +106,9 @@ task_status_immed tsk_cbk_accero( )
|
||||
( ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) != 0 )
|
||||
)
|
||||
{
|
||||
DBG_LED_WIFI_2_on;
|
||||
DBG_LED_on;
|
||||
pedometer(); // •ŕ<E280A2>”Śv
|
||||
DBG_LED_WIFI_2_off;
|
||||
DBG_LED_off;
|
||||
}
|
||||
}
|
||||
return ( ERR_SUCCESS );
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
//#define _MODEL_TS0_
|
||||
// <20>ªTEG2 CPU <20>{ Type-C
|
||||
|
||||
#define _MODEL_CTR_
|
||||
//#define _MODEL_CTR_
|
||||
// <20>ªTS board, WM1,1 TS-CTRC
|
||||
|
||||
#define _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
|
||||
255
trunk/led.c
255
trunk/led.c
@ -29,6 +29,8 @@
|
||||
// ========================================================
|
||||
static void led_pow_normal( );
|
||||
static void led_pow_hotaru( );
|
||||
static void led_pow_normal_old( );
|
||||
static void led_pow_hotaru_old( );
|
||||
|
||||
|
||||
|
||||
@ -133,7 +135,7 @@ void LED_init( )
|
||||
TOE0 = 0b0000000011101110; // TOxをタイマーモジュールが制御?
|
||||
TS0 = 0b0000000011101111; // 動作開始
|
||||
|
||||
TDR00 = LED_BRIGHT_MAX - 1; // 10bit, ŽüŠú
|
||||
TDR00 = LED_BRIGHT_MAX - 1; // 周期 10bit
|
||||
|
||||
if( system_status.reboot )
|
||||
{
|
||||
@ -179,51 +181,103 @@ enum LED_ILUM_MODE{
|
||||
======================================================== */
|
||||
void tsk_led_pow( )
|
||||
{
|
||||
switch ( vreg_ctr[VREG_C_LED_POW] )
|
||||
// tsk_led_powを呼び出すrengeどんが、タスク関数の配列をリンク時
|
||||
// に決めるてROMにもっているので、ここで分岐するしかない orz
|
||||
if( system_status.info_fullcolor )
|
||||
{
|
||||
// Ž©“®<E2809C>Ø‚è‘Ö‚¦
|
||||
case ( LED_POW_ILM_AUTO ):
|
||||
switch ( system_status.pwr_state )
|
||||
// お知らせランプフルカラー版 /////////////////////
|
||||
switch ( vreg_ctr[VREG_C_LED_POW] )
|
||||
{
|
||||
case SLEEP:
|
||||
// 自動切り替え
|
||||
case ( LED_POW_ILM_AUTO ):
|
||||
switch ( system_status.pwr_state )
|
||||
{
|
||||
case SLEEP:
|
||||
led_pow_hotaru( );
|
||||
break;
|
||||
|
||||
case ON:
|
||||
led_pow_normal( );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_HOTARU ):
|
||||
led_pow_hotaru( );
|
||||
break;
|
||||
|
||||
case ON:
|
||||
case ( LED_POW_ILM_ON ):
|
||||
default:
|
||||
led_pow_normal( );
|
||||
break;
|
||||
|
||||
default:
|
||||
case ( LED_POW_ILM_OFF ):
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
LED_pow_red = 0;
|
||||
break;
|
||||
|
||||
|
||||
case ( LED_POW_ILM_ONLY_RED ):
|
||||
LED_duty_pow_blu = 0;
|
||||
LED_pow_red = 1;
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_BLUE ):
|
||||
LED_duty_pow_blu = LED_BRIGHT_MAX;
|
||||
LED_pow_red = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
// ‹<E280B9>§
|
||||
case ( LED_POW_ILM_OFF ):
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
LED_pow_red = 0;
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_HOTARU ):
|
||||
led_pow_hotaru( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ON ):
|
||||
default:
|
||||
led_pow_normal( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_RED ):
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
LED_pow_red = 1;
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_BLUE ):
|
||||
led_fade_to( LED_duty_pow_blu, LED_BRIGHT_MAX );
|
||||
LED_pow_red = 0;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 旧仕様 /////////////////////////////////////////
|
||||
switch ( vreg_ctr[VREG_C_LED_POW] )
|
||||
{
|
||||
// 自動切り替え
|
||||
case ( LED_POW_ILM_AUTO ):
|
||||
switch ( system_status.pwr_state )
|
||||
{
|
||||
case SLEEP:
|
||||
led_pow_hotaru_old( );
|
||||
break;
|
||||
|
||||
case ON:
|
||||
led_pow_normal_old( );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_HOTARU ):
|
||||
led_pow_hotaru_old( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_ON ):
|
||||
default:
|
||||
led_pow_normal_old( );
|
||||
break;
|
||||
|
||||
case ( LED_POW_ILM_OFF ):
|
||||
led_fade_to( LED_duty_old_pow_blu, 0 );
|
||||
led_fade_to( LED_duty_old_pow_red, 0 );
|
||||
break;
|
||||
|
||||
|
||||
case ( LED_POW_ILM_ONLY_RED ):
|
||||
LED_duty_old_pow_blu = 0;
|
||||
LED_duty_old_pow_red = LED_BRIGHT_MAX;
|
||||
|
||||
case ( LED_POW_ILM_ONLY_BLUE ):
|
||||
LED_duty_old_pow_blu = LED_BRIGHT_MAX;
|
||||
LED_duty_old_pow_red = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -232,6 +286,65 @@ void tsk_led_pow( )
|
||||
電池残量で、 青→赤→赤点滅
|
||||
======================================================== */
|
||||
static void led_pow_normal( )
|
||||
{
|
||||
static u8 delay;
|
||||
static u8 red_blink_poi;
|
||||
|
||||
u8 temp;
|
||||
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_EMPTY )
|
||||
{
|
||||
// 赤点滅
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
|
||||
// 赤の点滅パターンも指定できる
|
||||
delay += 1;
|
||||
if( delay < 16 ) // フレームの保持時間稼ぎ
|
||||
{
|
||||
return;
|
||||
}
|
||||
delay = 0;
|
||||
|
||||
if( ( led_red_batt_empty.bits & ( 1 << red_blink_poi )) != 1 )
|
||||
{
|
||||
LED_pow_red = 1;
|
||||
LED_duty_notify_red = 255;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_pow_red = 0;
|
||||
LED_duty_notify_red = 0;
|
||||
}
|
||||
|
||||
red_blink_poi += 1;
|
||||
if( red_blink_poi >= 32 )
|
||||
{
|
||||
red_blink_poi = 0;
|
||||
}
|
||||
}
|
||||
else if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
// 赤点灯
|
||||
led_fade_to( LED_duty_pow_blu, 0 );
|
||||
LED_pow_red = 1;
|
||||
return;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// 青点灯
|
||||
led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] );
|
||||
LED_pow_red = 0;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* ========================================================
|
||||
電池残量で、 青→赤→赤点滅
|
||||
======================================================== */
|
||||
static void led_pow_normal_old( )
|
||||
{
|
||||
static u8 state;
|
||||
static u8 red_blink_poi;
|
||||
@ -372,6 +485,80 @@ static void led_pow_hotaru( )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
ホタルパターン
|
||||
======================================================== */
|
||||
static void led_pow_hotaru_old( )
|
||||
{
|
||||
static u8 delay;
|
||||
static u8 state;
|
||||
static u16 blue_to;
|
||||
|
||||
if( delay != 0 )
|
||||
{
|
||||
delay -= 1;
|
||||
return;
|
||||
}
|
||||
|
||||
delay = 10;
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
// フェードイン
|
||||
case ( 0 ):
|
||||
case ( 2 ):
|
||||
case ( 4 ):
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
blue_to = 0;
|
||||
LED_pow_red = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
blue_to = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||
LED_pow_red = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// フェードアウト
|
||||
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
|
||||
{
|
||||
LED_pow_red = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
blue_to = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// LED更新
|
||||
if( LED_duty_pow_blu != blue_to )
|
||||
{
|
||||
if( LED_duty_pow_blu > blue_to )
|
||||
{
|
||||
LED_duty_pow_blu -= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
LED_duty_pow_blu += 2;
|
||||
}
|
||||
}
|
||||
|
||||
if( LED_duty_pow_blu == blue_to )
|
||||
{
|
||||
state += 1;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
* 割り込みそのものは使いません *
|
||||
LED_Wifi 3
|
||||
|
||||
22
trunk/led.h
22
trunk/led.h
@ -4,8 +4,6 @@
|
||||
// ====================================
|
||||
|
||||
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
|
||||
// LED_DUTY
|
||||
#define LED_duty_pow_blu TDR05
|
||||
#define LED_duty_WiFi TDR02
|
||||
@ -15,30 +13,28 @@
|
||||
#define LED_duty_notify_grn TDR03
|
||||
#define LED_duty_notify_blu TDR06
|
||||
|
||||
|
||||
// これらはduty変えられません
|
||||
#define LED_pow_red P7.5
|
||||
#define LED_CAM P4.2
|
||||
|
||||
#else
|
||||
|
||||
// ‹ŒŽd—l
|
||||
// LED_DUTY
|
||||
#define LED_duty_pow_L TDR07
|
||||
#define LED_duty_pow_blu TDR06
|
||||
#define LED_duty_WiFi TDR03
|
||||
#define LED_duty_NOTIFY TDR05
|
||||
#define LED_duty_CAM TDR02
|
||||
#define LED_duty_3d TDR01
|
||||
#define LED_duty_old_pow_blu TDR06
|
||||
#define LED_duty_old_pow_red TDR07
|
||||
#define LED_duty_old_WiFi TDR03
|
||||
#define LED_duty_old_NOTIFY TDR05
|
||||
#define LED_duty_old_CAM TDR02
|
||||
#define LED_duty_old_3d TDR01
|
||||
// wifi2はPWMできません。
|
||||
|
||||
#endif
|
||||
#define LED_CHARGE P2.4
|
||||
|
||||
|
||||
|
||||
#define NOTIFY_LED_TERM 32
|
||||
|
||||
|
||||
#define LED_BRIGHT_MAX 0x0100
|
||||
#define LED_BRIGHT_MAX 0x00FF
|
||||
|
||||
// ====================================
|
||||
#ifdef _MCU_BSR_ // 電波送信パルス
|
||||
|
||||
@ -133,7 +133,6 @@ void main( )
|
||||
|
||||
if( comp != 0 )
|
||||
{
|
||||
DBG_LED_WIFI_2_on
|
||||
// ファームリストアを試みる
|
||||
firm_restore( );
|
||||
// 帰ってこない。リセットをかける。
|
||||
|
||||
@ -50,11 +50,10 @@ tasklist.each{|dat|
|
||||
}
|
||||
conf << "\n"
|
||||
|
||||
conf << "static const task_status ( *tasks[ TSK_LAST ] )() = {\n"
|
||||
conf << "const void ( *tasks[ TSK_LAST ] )() = {\n"
|
||||
tasklist.each{|dat|
|
||||
conf << " tsk_" << dat << ",\n"
|
||||
}
|
||||
conf << " };\n"
|
||||
|
||||
|
||||
conf << "\n\n#endif\n"
|
||||
conf << "\n#endif\n"
|
||||
|
||||
@ -1,42 +1,40 @@
|
||||
/*スクリプトによる自動生成です。手動で書き換えない方がよいです*/
|
||||
|
||||
#include "renge_defs.h"
|
||||
|
||||
|
||||
#ifndef __renge_task__
|
||||
#define __renge_task__
|
||||
|
||||
enum {
|
||||
TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC_STAT, TSK_DEBUG, TSK_DEBUG2, TSK_SYS, TSK_LAST
|
||||
};
|
||||
|
||||
extern void tsk_sw();
|
||||
extern void tsk_adc();
|
||||
extern void tsk_batt();
|
||||
extern void tsk_led_pow();
|
||||
extern void tsk_led_wifi();
|
||||
extern void tsk_led_notify();
|
||||
extern void tsk_led_cam();
|
||||
extern void tsk_misc_stat();
|
||||
extern void tsk_debug();
|
||||
extern void tsk_debug2();
|
||||
extern void tsk_sys();
|
||||
|
||||
|
||||
const void ( *tasks[ TSK_LAST ] )() = {
|
||||
tsk_sw,
|
||||
tsk_adc,
|
||||
tsk_batt,
|
||||
tsk_led_pow,
|
||||
tsk_led_wifi,
|
||||
tsk_led_notify,
|
||||
tsk_led_cam,
|
||||
tsk_misc_stat,
|
||||
tsk_debug,
|
||||
tsk_debug2,
|
||||
tsk_sys,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*スクリプトによる自動生成です。手動で書き換えない方がよいです*/
|
||||
|
||||
#ifndef __renge_task__
|
||||
#define __renge_task__
|
||||
|
||||
#include "renge_defs.h"
|
||||
|
||||
enum {
|
||||
TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC, TSK_STATUS, TSK_DEBUG, TSK_DEBUG2, TSK_SYS, TSK_LAST
|
||||
};
|
||||
|
||||
extern void tsk_sw();
|
||||
extern void tsk_adc();
|
||||
extern void tsk_batt();
|
||||
extern void tsk_led_pow();
|
||||
extern void tsk_led_wifi();
|
||||
extern void tsk_led_notify();
|
||||
extern void tsk_led_cam();
|
||||
extern void tsk_misc();
|
||||
extern void tsk_status();
|
||||
extern void tsk_debug();
|
||||
extern void tsk_debug2();
|
||||
extern void tsk_sys();
|
||||
|
||||
const void ( *tasks[ TSK_LAST ] )() = {
|
||||
tsk_sw,
|
||||
tsk_adc,
|
||||
tsk_batt,
|
||||
tsk_led_pow,
|
||||
tsk_led_wifi,
|
||||
tsk_led_notify,
|
||||
tsk_led_cam,
|
||||
tsk_misc,
|
||||
tsk_status,
|
||||
tsk_debug,
|
||||
tsk_debug2,
|
||||
tsk_sys,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@ -5,7 +5,8 @@ led_pow
|
||||
led_wifi
|
||||
led_notify
|
||||
led_cam
|
||||
misc_stat
|
||||
misc
|
||||
status
|
||||
debug
|
||||
debug2
|
||||
sys
|
||||
|
||||
@ -57,14 +57,10 @@ bit twl_ver_read;
|
||||
/* ========================================================
|
||||
ステータスレジスタなど
|
||||
======================================================== */
|
||||
void tsk_misc_stat( )
|
||||
void tsk_misc( )
|
||||
{
|
||||
static u8 interval_task_misc_stat = 0;
|
||||
static u8 state_old; // ステータス変化検出→割り込み の為
|
||||
#ifdef _BL_INDEPENDENT_
|
||||
static u8 state2_old;
|
||||
#endif
|
||||
u8 diff;
|
||||
/*
|
||||
static u8 interval_task_misc = 0;
|
||||
|
||||
if( interval_task_misc_stat != 0 )
|
||||
{
|
||||
@ -75,86 +71,49 @@ void tsk_misc_stat( )
|
||||
{
|
||||
interval_task_misc_stat = ( INTERVAL_TSK_MISC_STAT / SYS_INTERVAL_TICK );
|
||||
}
|
||||
|
||||
set_bit( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN );
|
||||
|
||||
// ステータスレジスタ関係 → 割り込み //
|
||||
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
|
||||
{
|
||||
// pm.c で、その場で行います。
|
||||
// REG_BIT_LCD_ON/OFF
|
||||
// REG_BIT_BL_ON/OFF
|
||||
// REG_BIT_BT_DC_CONNECT/DISC
|
||||
|
||||
|
||||
diff = vreg_ctr[VREG_C_STATUS] ^ state_old;
|
||||
if( diff != 0 )
|
||||
{
|
||||
state_old = vreg_ctr[VREG_C_STATUS];
|
||||
|
||||
if( diff & REG_BIT_BATT_CHARGE )
|
||||
{
|
||||
// 充電状態に以下略
|
||||
if( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE )
|
||||
{
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START );
|
||||
}
|
||||
else
|
||||
{
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP );
|
||||
}
|
||||
}
|
||||
|
||||
if( diff & REG_BIT_ST_SHELL_OPEN )
|
||||
{
|
||||
// 蓋の開け閉め
|
||||
if( vreg_ctr[VREG_C_STATUS] & REG_BIT_ST_SHELL_OPEN )
|
||||
{
|
||||
set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN );
|
||||
}
|
||||
else
|
||||
{
|
||||
set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
//#ifdef _MCU_KE3_
|
||||
// KE3では必須です。
|
||||
/* ========================================================
|
||||
加速度センサ割り込みピンがオリジナルマイコンには無いので
|
||||
ポーリングする。
|
||||
歩数計用
|
||||
BSRマイコンはaccero.cで割り込みルーチンからタスク登録します。
|
||||
======================================================== */
|
||||
// 割り込みの取りこぼし?
|
||||
if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
|
||||
// KE3では必須です。
|
||||
/* ========================================================
|
||||
加速度センサ割り込みピンがオリジナルマイコンには無いので
|
||||
ポーリングする。
|
||||
歩数計用
|
||||
BSRマイコンはaccero.cで割り込みルーチンからタスク登録します。
|
||||
======================================================== */
|
||||
// 割り込みの取りこぼし?
|
||||
if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
|
||||
{
|
||||
if( ACC_VALID == 1 )
|
||||
{
|
||||
if( ACC_VALID == 1 )
|
||||
{
|
||||
if( renge_task_immed_add( tsk_cbk_accero ) == ERR_SUCCESS ){
|
||||
NOP();
|
||||
}
|
||||
if( renge_task_immed_add( tsk_cbk_accero ) == ERR_SUCCESS ){
|
||||
NOP();
|
||||
}
|
||||
}
|
||||
}
|
||||
//#endif
|
||||
|
||||
// 割り込みの取りこぼし?
|
||||
if( system_status.pwr_state == ON )
|
||||
{
|
||||
/* ========================================================
|
||||
PM互換レジスタへの書き込み
|
||||
ポーリングしかしてないけど...
|
||||
todo 割り込みも?
|
||||
======================================================== */
|
||||
if( !PM_IRQ_n ){
|
||||
renge_task_immed_add( ntr_pmic_comm );
|
||||
NOP();
|
||||
}
|
||||
|
||||
/* ========================================================
|
||||
TWLランチャーが起動したことをCTRが知りたいらしい
|
||||
======================================================== */
|
||||
if( twl_ver_read )
|
||||
{
|
||||
twl_ver_read = 0;
|
||||
set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if( twl_ver_read )
|
||||
{
|
||||
twl_ver_read = 0;
|
||||
set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
91
trunk/task_status.c
Normal file
91
trunk/task_status.c
Normal file
@ -0,0 +1,91 @@
|
||||
#pragma SFR
|
||||
#pragma NOP
|
||||
#pragma HALT
|
||||
#pragma STOP
|
||||
|
||||
#include "incs.h"
|
||||
#include "renge.h"
|
||||
#include "pm.h"
|
||||
|
||||
#include "accero.h"
|
||||
#include "adc.h"
|
||||
#include "i2c_mcu.h"
|
||||
|
||||
|
||||
|
||||
// ========================================================
|
||||
#define INTERVAL_TSK_STATUS 4
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
ステータスレジスタなど
|
||||
======================================================== */
|
||||
void tsk_status( )
|
||||
{
|
||||
static u8 interval_task_status = 0;
|
||||
static u8 state_old; // ステータス変化検出→割り込み の為
|
||||
u8 diff;
|
||||
|
||||
if( interval_task_status != 0 )
|
||||
{
|
||||
interval_task_status -= 1;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
interval_task_status = ( INTERVAL_TSK_STATUS / SYS_INTERVAL_TICK );
|
||||
}
|
||||
|
||||
// 蓋開けチェック
|
||||
set_bit( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN );
|
||||
|
||||
// ステータスレジスタ関係 → 割り込み //
|
||||
// pm.c で、その場で行います。
|
||||
// REG_BIT_LCD_ON/OFF
|
||||
// REG_BIT_BL_ON/OFF
|
||||
// REG_BIT_BT_DC_CONNECT/DISC
|
||||
|
||||
diff = vreg_ctr[VREG_C_STATUS] ^ state_old;
|
||||
if( diff != 0 )
|
||||
{
|
||||
state_old = vreg_ctr[VREG_C_STATUS];
|
||||
|
||||
if( system_status.pwr_state == ON )
|
||||
{
|
||||
if( diff & REG_BIT_BATT_CHARGE )
|
||||
{
|
||||
// 充電状態に以下略
|
||||
if( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE )
|
||||
{
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START );
|
||||
}
|
||||
else
|
||||
{
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(( system_status.pwr_state == ON ) ||
|
||||
( system_status.pwr_state == SLEEP_TRIG ) ||
|
||||
( system_status.pwr_state == SLEEP )
|
||||
)
|
||||
{
|
||||
if( diff & REG_BIT_ST_SHELL_OPEN )
|
||||
{
|
||||
// 蓋の開け閉め
|
||||
if( vreg_ctr[VREG_C_STATUS] & REG_BIT_ST_SHELL_OPEN )
|
||||
{
|
||||
set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN );
|
||||
}
|
||||
else
|
||||
{
|
||||
set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
|
||||
|
||||
#ifdef _debug_led_
|
||||
# define DBG_LED_WIFI_2_on { PM2.4 = 0; P2.4 = 1; }
|
||||
# define DBG_LED_WIFI_2_off { PM2.4 = 1; P2.4 = 0; }
|
||||
# define DBG_LED_WIFI_2_toggle ( P2.4 ^= 1 )
|
||||
# define DBG_LED_on { PM2.4 = 0; P2.4 = 1; }
|
||||
# define DBG_LED_off { PM2.4 = 1; P2.4 = 0; }
|
||||
# define DBG_LED_toggle ( P2.4 ^= 1 )
|
||||
|
||||
#else
|
||||
# define DBG_LED_WIFI_2_on ;
|
||||
# define DBG_LED_WIFI_2_off ;
|
||||
# define DBG_LED_WIFI_2_toggle ;
|
||||
# define DBG_LED_on ;
|
||||
# define DBG_LED_off ;
|
||||
# define DBG_LED_toggle ;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@ -397,65 +397,6 @@ CommandFile=0
|
||||
[BuildBefore-AfterCmd]
|
||||
Before1=touch magic.c
|
||||
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
|
||||
[SrcFile]
|
||||
Source1=loader.c
|
||||
Source2=pm.c
|
||||
Source3=i2c_ctr.c
|
||||
Source4=main.c
|
||||
Source5=magic.c
|
||||
Source6=WDT.c
|
||||
Source7=i2c_mcu.c
|
||||
Source8=i2c_twl.c
|
||||
Source9=led.c
|
||||
Source10=rtc.c
|
||||
Source11=vreg_ctr.c
|
||||
Source12=vreg_twl.c
|
||||
Source13=adc.c
|
||||
Source14=renge\renge.c
|
||||
Source15=accero.c
|
||||
Source16=self_flash.c
|
||||
Source17=sw.c
|
||||
Source18=task_debug.c
|
||||
Source19=task_misc.c
|
||||
Source20=task_sys.c
|
||||
Source21=pedo_alg_thre_det2.c
|
||||
Source22=ini_VECT.c
|
||||
Source23=led_old.c
|
||||
[IncFile]
|
||||
Include1=incs_loader.h
|
||||
Include2=jhl_defs.h
|
||||
Include3=config.h
|
||||
Include4=user_define.h
|
||||
Include5=bsr_system.h
|
||||
Include6=renge\renge.h
|
||||
Include7=renge\renge_defs.h
|
||||
Include8=renge\renge_task_immediate.h
|
||||
Include9=vreg_ctr.h
|
||||
Include10=vreg_twl.h
|
||||
Include11=loader.h
|
||||
Include12=i2c_mcu.h
|
||||
Include13=WDT.h
|
||||
Include14=fsl.h
|
||||
Include15=fsl_user.h
|
||||
Include16=i2c_ctr.h
|
||||
Include17=pm.h
|
||||
Include18=rtc.h
|
||||
Include19=reboot.h
|
||||
Include20=incs.h
|
||||
Include21=accero.h
|
||||
Include22=pedometer.h
|
||||
Include23=adc.h
|
||||
Include24=led.h
|
||||
Include25=batt_params.h
|
||||
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
Include27=i2c_twl_defs.h
|
||||
Include28=renge\renge_task_intval.h
|
||||
Include29=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
Include30=i2c_twl.h
|
||||
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
|
||||
@ -1045,3 +986,62 @@ VfiFileBoot0=
|
||||
VfiFileBoot1=boot.vfi
|
||||
VF78K0Rchk=0
|
||||
VF78K0Rvs=
|
||||
[SrcFile]
|
||||
Source1=loader.c
|
||||
Source2=pm.c
|
||||
Source3=i2c_ctr.c
|
||||
Source4=main.c
|
||||
Source5=magic.c
|
||||
Source6=WDT.c
|
||||
Source7=i2c_mcu.c
|
||||
Source8=i2c_twl.c
|
||||
Source9=led.c
|
||||
Source10=rtc.c
|
||||
Source11=vreg_ctr.c
|
||||
Source12=vreg_twl.c
|
||||
Source13=adc.c
|
||||
Source14=renge\renge.c
|
||||
Source15=accero.c
|
||||
Source16=self_flash.c
|
||||
Source17=sw.c
|
||||
Source18=task_debug.c
|
||||
Source19=task_misc.c
|
||||
Source20=task_sys.c
|
||||
Source21=pedo_alg_thre_det2.c
|
||||
Source22=ini_VECT.c
|
||||
Source23=task_status.c
|
||||
[IncFile]
|
||||
Include1=incs_loader.h
|
||||
Include2=jhl_defs.h
|
||||
Include3=config.h
|
||||
Include4=user_define.h
|
||||
Include5=bsr_system.h
|
||||
Include6=renge\renge.h
|
||||
Include7=renge\renge_defs.h
|
||||
Include8=renge\renge_task_immediate.h
|
||||
Include9=vreg_ctr.h
|
||||
Include10=vreg_twl.h
|
||||
Include11=loader.h
|
||||
Include12=i2c_mcu.h
|
||||
Include13=WDT.h
|
||||
Include14=fsl.h
|
||||
Include15=fsl_user.h
|
||||
Include16=i2c_ctr.h
|
||||
Include17=pm.h
|
||||
Include18=rtc.h
|
||||
Include19=reboot.h
|
||||
Include20=incs.h
|
||||
Include21=accero.h
|
||||
Include22=pedometer.h
|
||||
Include23=adc.h
|
||||
Include24=led.h
|
||||
Include25=batt_params.h
|
||||
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
Include27=i2c_twl_defs.h
|
||||
Include28=renge\renge_task_intval.h
|
||||
Include29=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
Include30=i2c_twl.h
|
||||
Include31=sw.h
|
||||
Include32=self_flash.h
|
||||
Include33=pool.h
|
||||
Include34=pedo_lpf_coeff.h
|
||||
|
||||
Loading…
Reference in New Issue
Block a user