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 )
|
( ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) != 0 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DBG_LED_WIFI_2_on;
|
DBG_LED_on;
|
||||||
pedometer(); // •ŕ<E280A2>”Śv
|
pedometer(); // •ŕ<E280A2>”Śv
|
||||||
DBG_LED_WIFI_2_off;
|
DBG_LED_off;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ( ERR_SUCCESS );
|
return ( ERR_SUCCESS );
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
//#define _MODEL_TS0_
|
//#define _MODEL_TS0_
|
||||||
// <20>ªTEG2 CPU <20>{ Type-C
|
// <20>ªTEG2 CPU <20>{ Type-C
|
||||||
|
|
||||||
#define _MODEL_CTR_
|
//#define _MODEL_CTR_
|
||||||
// <20>ªTS board, WM1,1 TS-CTRC
|
// <20>ªTS board, WM1,1 TS-CTRC
|
||||||
|
|
||||||
#define _MODEL_CTR_NOTIFY_FULLCOLOR_
|
#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_normal( );
|
||||||
static void led_pow_hotaru( );
|
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をタイマーモジュールが制御?
|
TOE0 = 0b0000000011101110; // TOxをタイマーモジュールが制御?
|
||||||
TS0 = 0b0000000011101111; // 動作開始
|
TS0 = 0b0000000011101111; // 動作開始
|
||||||
|
|
||||||
TDR00 = LED_BRIGHT_MAX - 1; // 10bit, ŽüŠú
|
TDR00 = LED_BRIGHT_MAX - 1; // 周期 10bit
|
||||||
|
|
||||||
if( system_status.reboot )
|
if( system_status.reboot )
|
||||||
{
|
{
|
||||||
@ -179,51 +181,103 @@ enum LED_ILUM_MODE{
|
|||||||
======================================================== */
|
======================================================== */
|
||||||
void tsk_led_pow( )
|
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 ( vreg_ctr[VREG_C_LED_POW] )
|
||||||
switch ( system_status.pwr_state )
|
|
||||||
{
|
{
|
||||||
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( );
|
led_pow_hotaru( );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ON:
|
case ( LED_POW_ILM_ON ):
|
||||||
|
default:
|
||||||
led_pow_normal( );
|
led_pow_normal( );
|
||||||
break;
|
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;
|
||||||
}
|
}
|
||||||
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 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 state;
|
||||||
static u8 red_blink_poi;
|
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
|
LED_Wifi 3
|
||||||
|
|||||||
22
trunk/led.h
22
trunk/led.h
@ -4,8 +4,6 @@
|
|||||||
// ====================================
|
// ====================================
|
||||||
|
|
||||||
|
|
||||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
|
||||||
|
|
||||||
// LED_DUTY
|
// LED_DUTY
|
||||||
#define LED_duty_pow_blu TDR05
|
#define LED_duty_pow_blu TDR05
|
||||||
#define LED_duty_WiFi TDR02
|
#define LED_duty_WiFi TDR02
|
||||||
@ -15,30 +13,28 @@
|
|||||||
#define LED_duty_notify_grn TDR03
|
#define LED_duty_notify_grn TDR03
|
||||||
#define LED_duty_notify_blu TDR06
|
#define LED_duty_notify_blu TDR06
|
||||||
|
|
||||||
|
|
||||||
// これらはduty変えられません
|
// これらはduty変えられません
|
||||||
#define LED_pow_red P7.5
|
#define LED_pow_red P7.5
|
||||||
#define LED_CAM P4.2
|
#define LED_CAM P4.2
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
|
// ‹ŒŽd—l
|
||||||
// LED_DUTY
|
// LED_DUTY
|
||||||
#define LED_duty_pow_L TDR07
|
#define LED_duty_old_pow_blu TDR06
|
||||||
#define LED_duty_pow_blu TDR06
|
#define LED_duty_old_pow_red TDR07
|
||||||
#define LED_duty_WiFi TDR03
|
#define LED_duty_old_WiFi TDR03
|
||||||
#define LED_duty_NOTIFY TDR05
|
#define LED_duty_old_NOTIFY TDR05
|
||||||
#define LED_duty_CAM TDR02
|
#define LED_duty_old_CAM TDR02
|
||||||
#define LED_duty_3d TDR01
|
#define LED_duty_old_3d TDR01
|
||||||
// wifi2はPWMできません。
|
// wifi2はPWMできません。
|
||||||
|
#define LED_CHARGE P2.4
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define NOTIFY_LED_TERM 32
|
#define NOTIFY_LED_TERM 32
|
||||||
|
|
||||||
|
|
||||||
#define LED_BRIGHT_MAX 0x0100
|
#define LED_BRIGHT_MAX 0x00FF
|
||||||
|
|
||||||
// ====================================
|
// ====================================
|
||||||
#ifdef _MCU_BSR_ // 電波送信パルス
|
#ifdef _MCU_BSR_ // 電波送信パルス
|
||||||
|
|||||||
@ -133,7 +133,6 @@ void main( )
|
|||||||
|
|
||||||
if( comp != 0 )
|
if( comp != 0 )
|
||||||
{
|
{
|
||||||
DBG_LED_WIFI_2_on
|
|
||||||
// ファームリストアを試みる
|
// ファームリストアを試みる
|
||||||
firm_restore( );
|
firm_restore( );
|
||||||
// 帰ってこない。リセットをかける。
|
// 帰ってこない。リセットをかける。
|
||||||
|
|||||||
@ -50,11 +50,10 @@ tasklist.each{|dat|
|
|||||||
}
|
}
|
||||||
conf << "\n"
|
conf << "\n"
|
||||||
|
|
||||||
conf << "static const task_status ( *tasks[ TSK_LAST ] )() = {\n"
|
conf << "const void ( *tasks[ TSK_LAST ] )() = {\n"
|
||||||
tasklist.each{|dat|
|
tasklist.each{|dat|
|
||||||
conf << " tsk_" << dat << ",\n"
|
conf << " tsk_" << dat << ",\n"
|
||||||
}
|
}
|
||||||
conf << " };\n"
|
conf << " };\n"
|
||||||
|
|
||||||
|
conf << "\n#endif\n"
|
||||||
conf << "\n\n#endif\n"
|
|
||||||
|
|||||||
@ -1,42 +1,40 @@
|
|||||||
/*スクリプトによる自動生成です。手動で書き換えない方がよいです*/
|
/*スクリプトによる自動生成です。手動で書き換えない方がよいです*/
|
||||||
|
|
||||||
#include "renge_defs.h"
|
#ifndef __renge_task__
|
||||||
|
#define __renge_task__
|
||||||
|
|
||||||
#ifndef __renge_task__
|
#include "renge_defs.h"
|
||||||
#define __renge_task__
|
|
||||||
|
enum {
|
||||||
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
|
||||||
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_sw();
|
extern void tsk_adc();
|
||||||
extern void tsk_adc();
|
extern void tsk_batt();
|
||||||
extern void tsk_batt();
|
extern void tsk_led_pow();
|
||||||
extern void tsk_led_pow();
|
extern void tsk_led_wifi();
|
||||||
extern void tsk_led_wifi();
|
extern void tsk_led_notify();
|
||||||
extern void tsk_led_notify();
|
extern void tsk_led_cam();
|
||||||
extern void tsk_led_cam();
|
extern void tsk_misc();
|
||||||
extern void tsk_misc_stat();
|
extern void tsk_status();
|
||||||
extern void tsk_debug();
|
extern void tsk_debug();
|
||||||
extern void tsk_debug2();
|
extern void tsk_debug2();
|
||||||
extern void tsk_sys();
|
extern void tsk_sys();
|
||||||
|
|
||||||
|
const void ( *tasks[ TSK_LAST ] )() = {
|
||||||
const void ( *tasks[ TSK_LAST ] )() = {
|
tsk_sw,
|
||||||
tsk_sw,
|
tsk_adc,
|
||||||
tsk_adc,
|
tsk_batt,
|
||||||
tsk_batt,
|
tsk_led_pow,
|
||||||
tsk_led_pow,
|
tsk_led_wifi,
|
||||||
tsk_led_wifi,
|
tsk_led_notify,
|
||||||
tsk_led_notify,
|
tsk_led_cam,
|
||||||
tsk_led_cam,
|
tsk_misc,
|
||||||
tsk_misc_stat,
|
tsk_status,
|
||||||
tsk_debug,
|
tsk_debug,
|
||||||
tsk_debug2,
|
tsk_debug2,
|
||||||
tsk_sys,
|
tsk_sys,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,8 @@ led_pow
|
|||||||
led_wifi
|
led_wifi
|
||||||
led_notify
|
led_notify
|
||||||
led_cam
|
led_cam
|
||||||
misc_stat
|
misc
|
||||||
|
status
|
||||||
debug
|
debug
|
||||||
debug2
|
debug2
|
||||||
sys
|
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; // ステータス変化検出→割り込み の為
|
static u8 interval_task_misc = 0;
|
||||||
#ifdef _BL_INDEPENDENT_
|
|
||||||
static u8 state2_old;
|
|
||||||
#endif
|
|
||||||
u8 diff;
|
|
||||||
|
|
||||||
if( interval_task_misc_stat != 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 );
|
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_
|
//#ifdef _MCU_KE3_
|
||||||
// KE3では必須です。
|
// KE3では必須です。
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
加速度センサ割り込みピンがオリジナルマイコンには無いので
|
加速度センサ割り込みピンがオリジナルマイコンには無いので
|
||||||
ポーリングする。
|
ポーリングする。
|
||||||
歩数計用
|
歩数計用
|
||||||
BSRマイコンはaccero.cで割り込みルーチンからタスク登録します。
|
BSRマイコンはaccero.cで割り込みルーチンからタスク登録します。
|
||||||
======================================================== */
|
======================================================== */
|
||||||
// 割り込みの取りこぼし?
|
// 割り込みの取りこぼし?
|
||||||
if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
|
if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
|
||||||
|
{
|
||||||
|
if( ACC_VALID == 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
|
//#endif
|
||||||
|
|
||||||
// 割り込みの取りこぼし?
|
if( system_status.pwr_state == ON )
|
||||||
|
{
|
||||||
|
/* ========================================================
|
||||||
|
PM互換レジスタへの書き込み
|
||||||
|
ポーリングしかしてないけど...
|
||||||
|
todo 割り込みも?
|
||||||
|
======================================================== */
|
||||||
if( !PM_IRQ_n ){
|
if( !PM_IRQ_n ){
|
||||||
renge_task_immed_add( ntr_pmic_comm );
|
renge_task_immed_add( ntr_pmic_comm );
|
||||||
NOP();
|
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_
|
#ifdef _debug_led_
|
||||||
# define DBG_LED_WIFI_2_on { PM2.4 = 0; P2.4 = 1; }
|
# define DBG_LED_on { PM2.4 = 0; P2.4 = 1; }
|
||||||
# define DBG_LED_WIFI_2_off { PM2.4 = 1; P2.4 = 0; }
|
# define DBG_LED_off { PM2.4 = 1; P2.4 = 0; }
|
||||||
# define DBG_LED_WIFI_2_toggle ( P2.4 ^= 1 )
|
# define DBG_LED_toggle ( P2.4 ^= 1 )
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# define DBG_LED_WIFI_2_on ;
|
# define DBG_LED_on ;
|
||||||
# define DBG_LED_WIFI_2_off ;
|
# define DBG_LED_off ;
|
||||||
# define DBG_LED_WIFI_2_toggle ;
|
# define DBG_LED_toggle ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -397,65 +397,6 @@ CommandFile=0
|
|||||||
[BuildBefore-AfterCmd]
|
[BuildBefore-AfterCmd]
|
||||||
Before1=touch magic.c
|
Before1=touch magic.c
|
||||||
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
|
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]
|
[ToolSet]
|
||||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||||
Tool1=CC78K0R|W2.10
|
Tool1=CC78K0R|W2.10
|
||||||
@ -1045,3 +986,62 @@ VfiFileBoot0=
|
|||||||
VfiFileBoot1=boot.vfi
|
VfiFileBoot1=boot.vfi
|
||||||
VF78K0Rchk=0
|
VF78K0Rchk=0
|
||||||
VF78K0Rvs=
|
VF78K0Rvs=
|
||||||
|
[SrcFile]
|
||||||
|
Source1=loader.c
|
||||||
|
Source2=pm.c
|
||||||
|
Source3=i2c_ctr.c
|
||||||
|
Source4=main.c
|
||||||
|
Source5=magic.c
|
||||||
|
Source6=WDT.c
|
||||||
|
Source7=i2c_mcu.c
|
||||||
|
Source8=i2c_twl.c
|
||||||
|
Source9=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