#include <p24FJ64GA002.h>#include "types.h"#include "table.h"#include "ssm.h"#include "libadc.h"#include "librtc.h"#include "libuart.h"
マクロ定義 | |
| #define | SSM_SHIFT(x, y) (x - (x - y) / 2.0) |
| #define | TIRE_WIDTH 235 |
| #define | TIRE_FLAT 45 |
| #define | TIRE_INCH 17 |
| #define | GEAR_F 3.900 |
| #define | GEAR_1 3.636 |
| #define | GEAR_2 2.375 |
| #define | GEAR_3 1.761 |
| #define | GEAR_4 1.346 |
| #define | GEAR_5 1.062 |
| #define | GEAR_6 0.842 |
| #define | GEAR_7 0.001 |
関数 | |
| void | SSM_init (void) |
| BOOL | SSM_main (void) |
変数 | |
| SSM_T | ssm |
| SSM_DATA_T | ssm_data |
| 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