/* ======================================================== 簡易テストのためのHALレイヤ $Id: asdf$ ======================================================== */ #ifndef _WIN32 #pragma SFR #endif #include "incs_loader.h" #define WIFI_txLatch PIF21 // 電波送信パルス 本来 led.h で定義 // HALでかぶせるの //////////////////////////////////////// // こんな事するなら正論理にすr...いや何でもない bit PM_EXTDC_n; bit BT_IN_CHG_n; bit SW_POW_n; bit SW_HOME_n; bit SW_WIFI_n; bit SHELL_OPEN; /* #define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) #define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) //#define REG_BIT_HAL0_PM_IRQ_n ( 1 << 5 ) // 使わない #define REG_BIT_HAL0_WL_TX ( 1 << 4 ) #define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) #define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) #define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) #define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) #define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) #define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) #define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) #define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) */ // 載せ替え // チャタリング除去ならここでやったり(押し時間カウントは別) void hal_update() { #ifdef _ENABLE_HAL_ u8 temp_conf = vreg_ctr[ VREG_C_HAL_OVW_CONT0 ]; u8 temp_dat = vreg_ctr[ VREG_C_HAL_OVW_DAT0 ]; #else u8 temp_conf = 0x00; u8 temp_dat = 0; // 何でも良い #endif // アダプタ有無 if( temp_conf & REG_BIT_HAL0_PM_EXTDC_n ) { // 三項式はなんだか大きくなりがち if(( temp_dat & REG_BIT_HAL0_PM_EXTDC_n ) == 0 ) { PM_EXTDC_n = 0; } else { PM_EXTDC_n = 1; } } else { PM_EXTDC_n = PM_EXTDC_n_RAW; } // 充電中? if( temp_conf & REG_BIT_HAL0_BT_IN_CHG_n ) { if(( temp_dat & REG_BIT_HAL0_BT_IN_CHG_n ) == 0 ) { BT_IN_CHG_n = 0; } else { BT_IN_CHG_n = 1; } } else { BT_IN_CHG_n = BT_IN_CHG_n_RAW; } // 電源釦 if( temp_conf & REG_BIT_HAL0_SW_POW_n ) { if(( temp_dat & REG_BIT_HAL0_SW_POW_n ) == 0 ) { SW_POW_n = 0 ; } else { SW_POW_n = 1; } } else { SW_POW_n = SW_POW_n_RAW; } // 実家釦 if( temp_conf & REG_BIT_HAL0_SW_HOME_n ) { if(( temp_dat & REG_BIT_HAL0_SW_HOME_n ) == 0 ) { SW_HOME_n = 0; } else { SW_HOME_n = 1; } } else { if( system_status.model == MODEL_TS_BOARD )// 接続先のポートが違うため { SW_HOME_n = SW_HOME_n_TSBOARD_RAW; } else { SW_HOME_n = SW_HOME_n_JIKKI_RAW; } } // 無線開閉 if( temp_conf & REG_BIT_HAL0_SW_WIFI_n ) { if(( temp_dat & REG_BIT_HAL0_SW_WIFI_n ) == 0 ) { SW_WIFI_n = 0; } else { SW_WIFI_n = 1; } } else { SW_WIFI_n = SW_WIFI_n_RAW; } // 蝶番 if( temp_conf & REG_BIT_HAL0_SHELL_OPEN ) { if(( temp_dat & REG_BIT_HAL0_SHELL_OPEN ) == 0 ) { SHELL_OPEN = 0; } else { SHELL_OPEN = 1; } } else { SHELL_OPEN = SHELL_OPEN_RAW; } // 無線電波発射 if( temp_conf & REG_BIT_HAL0_WL_TX ) { WIFI_txLatch = 1; } } void hal_reset() { vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = 0; vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] = 0xFF; vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] = 0xFF; vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] = 0xFF; }