
データ構造 | |
| struct | SSM |
| struct | SSM_DATA |
マクロ定義 | |
| #define | SSM_TIRE_R(x, y, z) ((((x * y) / 50.0) + (z * 25.4)) * 3.1415926) |
| #define | SSM_GEAR_FINAL (0) |
| #define | SSM_GEAR_1 (1) |
| #define | SSM_GEAR_2 (2) |
| #define | SSM_GEAR_3 (3) |
| #define | SSM_GEAR_4 (4) |
| #define | SSM_GEAR_5 (5) |
| #define | SSM_GEAR_6 (6) |
| #define | SSM_GEAR_7 (7) |
| #define | SSM_MODE_OPENSSM (0) |
| #define | SSM_MODE_OPENPORT (1) |
型定義 | |
| typedef struct SSM | SSM_T |
| typedef SSM_T * | pSSM_T |
| typedef struct SSM_DATA | SSM_DATA_T |
| typedef SSM_DATA_T * | pSSM_DATA_T |
関数 | |
| void | SSM_init (void) |
| BOOL | SSM_main (void) |
変数 | |
| SSM_T | ssm |
| SSM_DATA_T | ssm_data |
| #define SSM_MODE_OPENPORT (1) |
参照元 SSM_main().
| #define SSM_MODE_OPENSSM (0) |
参照元 SSM_main().
| #define SSM_TIRE_R | ( | x, | ||
| y, | ||||
| z | ||||
| ) | ((((x * y) / 50.0) + (z * 25.4)) * 3.1415926) |
参照元 SSM_init().
| typedef SSM_DATA_T* pSSM_DATA_T |
| typedef struct SSM_DATA SSM_DATA_T |
| void SSM_init | ( | void | ) |
参照先 SSM_DATA::afr, SSM_DATA::battery, SSM_DATA::boost, SSM_DATA::coolant, SSM::cycle, SSM_DATA::engine, SSM::error, SSM_DATA::fuel, SSM_DATA::fuel_rate, SSM::gear_ratio, SSM_DATA::ignition, SSM_DATA::intakeair, SSM_DATA::knock, SSM::last, SSM_DATA::maf, SSM::mode, SSM::price, rtc, SSM_DATA::shift, SSM_DATA::speed, SSM_TIRE_R, SSM_DATA::throttle, RTC::tick, SSM::tire_circle, SSM::tire_flat, SSM::tire_inch, SSM::tire_width, UART1_buf_clear(), UART2_buf_clear(), と SSM::wait.
参照元 main().
{
/* 初期化する */
ssm.tire_width = TIRE_WIDTH;
ssm.tire_flat = TIRE_FLAT;
ssm.tire_inch = TIRE_INCH;
ssm.gear_ratio[0] = GEAR_F;
ssm.gear_ratio[1] = GEAR_1;
ssm.gear_ratio[2] = GEAR_2;
ssm.gear_ratio[3] = GEAR_3;
ssm.gear_ratio[4] = GEAR_4;
ssm.gear_ratio[5] = GEAR_5;
ssm.gear_ratio[6] = GEAR_6;
ssm.gear_ratio[7] = GEAR_7;
ssm.price = 100;
ssm.tire_circle = SSM_TIRE_R(ssm.tire_width, ssm.tire_flat, ssm.tire_inch);
ssm.mode = SSM_MODE_OPENSSM;
ssm.wait = 1500;
ssm.last = rtc.tick;
ssm.cycle = 0xffff;
ssm.error = 0x0000;
ssm_data.engine = 800;
ssm_data.throttle = 0;
ssm_data.speed = 0;
ssm_data.boost = 0.0;
ssm_data.coolant = 20.0;
ssm_data.intakeair = 20.0;
ssm_data.battery = 12.0;
ssm_data.maf = 5;
ssm_data.afr = 14.7;
ssm_data.ignition = 0;
ssm_data.knock = 0;
ssm_data.fuel = 0;
ssm_data.fuel_rate = 0;
ssm_data.shift = 0;
UART1_buf_clear();
UART2_buf_clear();
return;
}


| BOOL SSM_main | ( | void | ) |
参照先 FALSE, SSM::mode, SSM_MODE_OPENPORT, SSM_MODE_OPENSSM, UART1_init(), と UART2_init().
参照元 main().
{
static unsigned char mode = 0xff;
/* 通信モードによって動作を変える */
switch(ssm.mode){
/* OpenSSMモード */
case SSM_MODE_OPENSSM:
/* 前回のコールと異なるとき、UARTを初期化する */
if(mode != ssm.mode){
UART1_init(115200);
UART2_init( 4800);
}
mode = ssm.mode;
return(SSM_openssm());
break;
/* OpenPort下位互換モード */
case SSM_MODE_OPENPORT:
default:
/* 前回のコールと異なるとき、UARTを初期化する */
if(mode != ssm.mode){
UART1_init( 4800);
UART2_init( 4800);
}
mode = ssm.mode;
return(SSM_openport());
break;
}
/* ここにきたらバグ */
return(FALSE);
}


参照元 EXTMETER_main().
1.7.1