mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-06-18 16:45:33 -04:00
183 lines
3.8 KiB
C
183 lines
3.8 KiB
C
/* ========================================================
|
|
簡易テストのための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;
|
|
}
|
|
|