ctr_mcu/trunk/main.c
fujita_ryohei 5812913f0d 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
2009-09-01 06:47:57 +00:00

103 lines
2.3 KiB
C

/* ========================================================
MCU CTR BSR
2008,2009 nintendo
開発技術部 藤田
======================================================== */
/*
管理担当がついてない
pm_irq
slp
wl_rx
wl_tx
dbg
*/
// ========================================================
#include "incs.h"
#include "WDT.h"
#include "rtc.h"
#include "pm.h"
#include "accero.h"
// ========================================================
err to_sleep();
static void read_dipsw();
unsigned char temp_teg;
extern void power_save();
// ========================================================
bit active;
bit sleep;
bit rsv_to_sleep;
bit rsv_LCD_on;
bit rsv_BL_on;
system_status_ system_status;
u8 off_delay; // 電源 OFF から PWSW 等で電源オンする際、押してる時間をカウントするのに使う
/* ========================================================
本当のエントリ関数は loader.c にあります
======================================================== */
void main_loop( void ){
// 電池投入時の1回のみ
vreg_ctr_init();
if(( RESF & REG_BIT_WDT_DET ) != 0 ){
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_WDT_DET;
iic_mcu_start();
}else{
PM_reset();
}
RTC_init(); // 電池初投入ビットも立てます
vreg_twl_init();
read_dipsw();
// 特定スイッチで何かするか?
renge_init();
if(( vreg_ctr[ VREG_C_IRQ1 ] & REG_BIT_WDT_DET ) != 0 ){
system_status.pwr_state = ON_TRIG;
}else{
system_status.pwr_state = OFF_TRIG;
}
renge_task_interval_run_force = 1;
EI();
// メインループ //
while(1){ // システムtick、または割り込みで廻ります。
WDT_Restart();
renge_task_interval_run(); // 内部で、システムtickまたは強制起動します
renge_task_immed_run(); // ここのループが廻る度に実行されます
power_save();
}
}
/* ========================================================
======================================================== */
static void read_dipsw(){
// ソフトディップスイッチ読み込み
// PU4 |= 0x03; // dip sw 0,1
system_status.dipsw0 = ( DIPSW_0 == 0 )? 0: 1;
system_status.dipsw1 = ( DIPSW_1 == 0 )? 0: 1;
// PU4 &= ~0x03;
}