データ構造 | マクロ定義 | 型定義 | 関数 | 変数

C:/PIC/OpenSSM/extmeter.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

データ構造

struct  EXTMETER

マクロ定義

#define EXTMETER_SETTING   (0)
#define EXTMETER_SPEED   (1)
#define EXTMETER_ENGINE   (2)
#define EXTMETER_BOOST   (3)
#define EXTMETER_THROTTLE   (4)
#define EXTMETER_COOLANT   (5)
#define EXTMETER_INTAKEAIR   (6)
#define EXTMETER_DIV   16

型定義

typedef struct EXTMETER EXTMETER_T
typedef EXTMETER_TpEXTMETER_T

関数

void EXTMETER_init (unsigned char target)
BOOL EXTMETER_main (void)

変数

EXTMETER_T extmeter

マクロ定義

#define EXTMETER_BOOST   (3)

extmeter.h25 行で定義されています。

参照元 EXTMETER_init(), EXTMETER_main(), と main().

#define EXTMETER_COOLANT   (5)

extmeter.h27 行で定義されています。

参照元 EXTMETER_init(), と EXTMETER_main().

#define EXTMETER_DIV   16

extmeter.h30 行で定義されています。

#define EXTMETER_ENGINE   (2)

extmeter.h24 行で定義されています。

参照元 EXTMETER_init(), と EXTMETER_main().

#define EXTMETER_INTAKEAIR   (6)

extmeter.h28 行で定義されています。

参照元 EXTMETER_init(), と EXTMETER_main().

#define EXTMETER_SETTING   (0)

extmeter.h22 行で定義されています。

参照元 EXTMETER_main().

#define EXTMETER_SPEED   (1)

extmeter.h23 行で定義されています。

参照元 EXTMETER_init(), と EXTMETER_main().

#define EXTMETER_THROTTLE   (4)

extmeter.h26 行で定義されています。

参照元 EXTMETER_init(), と EXTMETER_main().


型定義

typedef struct EXTMETER EXTMETER_T

extmeter.h41 行で定義されています。


関数

void EXTMETER_init ( unsigned char  target  ) 

extmeter.c51 行で定義されています。

参照先 EXTMETER_BOOST, EXTMETER_COOLANT, EXTMETER_ENGINE, EXTMETER_INTAKEAIR, EXTMETER_SPEED, EXTMETER_THROTTLE, EXTMETER::map, と EXTMETER::target.

参照元 main().

{
    extmeter.target = target;

    /* extmeter.mapを 2次元配列にする方法もあるが... */
    switch(target){
    case EXTMETER_SPEED:
        extmeter.map[  0 ] =     0;
        extmeter.map[  1 ] =    12;
        extmeter.map[  2 ] =    24;
        extmeter.map[  3 ] =    36;
        extmeter.map[  4 ] =    48;
        extmeter.map[  5 ] =    60;
        extmeter.map[  6 ] =    72;
        extmeter.map[  7 ] =    84;
        extmeter.map[  8 ] =    96;
        extmeter.map[  9 ] =   108;
        extmeter.map[ 10 ] =   120;
        extmeter.map[ 11 ] =   132;
        extmeter.map[ 12 ] =   144;
        extmeter.map[ 13 ] =   156;
        extmeter.map[ 14 ] =   168;
        extmeter.map[ 15 ] =   180;
        break;

    case EXTMETER_ENGINE:
        extmeter.map[  0 ] =     0;
        extmeter.map[  1 ] =   600;
        extmeter.map[  2 ] =  1200;
        extmeter.map[  3 ] =  2800;
        extmeter.map[  4 ] =  3400;
        extmeter.map[  5 ] =  4000;
        extmeter.map[  6 ] =  4600;
        extmeter.map[  7 ] =  5200;
        extmeter.map[  8 ] =  5800;
        extmeter.map[  9 ] =  6400;
        extmeter.map[ 10 ] =  7000;
        extmeter.map[ 11 ] =  7600;
        extmeter.map[ 12 ] =  8200;
        extmeter.map[ 13 ] =  8800;
        extmeter.map[ 14 ] =  9400;
        extmeter.map[ 15 ] = 10000;
        break;

    case EXTMETER_BOOST:
        extmeter.map[  0 ] = -1.000;
        extmeter.map[  1 ] = -0.900;
        extmeter.map[  2 ] = -0.700;
        extmeter.map[  3 ] = -0.500;
        extmeter.map[  4 ] = -0.300;
        extmeter.map[  5 ] = -0.180;
        extmeter.map[  6 ] = -0.000;
        extmeter.map[  7 ] =  0.200;
        extmeter.map[  8 ] =  0.350;
        extmeter.map[  9 ] =  0.510;
        extmeter.map[ 10 ] =  0.700;
        extmeter.map[ 11 ] =  0.900;
        extmeter.map[ 12 ] =  1.050;
        extmeter.map[ 13 ] =  1.200;
        extmeter.map[ 14 ] =  1.400;
        extmeter.map[ 15 ] =  1.600;
        break;

    case EXTMETER_THROTTLE:
        extmeter.map[  0 ] =     00;
        extmeter.map[  1 ] =   6.60;
        extmeter.map[  2 ] =  13.20;
        extmeter.map[  3 ] =  19.80;
        extmeter.map[  4 ] =  26.40;
        extmeter.map[  5 ] =  33.00;
        extmeter.map[  6 ] =  39.60;
        extmeter.map[  7 ] =  46.20;
        extmeter.map[  8 ] =  52.80;
        extmeter.map[  9 ] =  59.40;
        extmeter.map[ 10 ] =  66.00;
        extmeter.map[ 11 ] =  72.60;
        extmeter.map[ 12 ] =  79.20;
        extmeter.map[ 13 ] =  85.80;
        extmeter.map[ 14 ] =  92.40;
        extmeter.map[ 15 ] = 100.00;
        break;

    case EXTMETER_COOLANT:
    case EXTMETER_INTAKEAIR:
    default:
        extmeter.map[  0 ] =   -40;
        extmeter.map[  1 ] =   -28;
        extmeter.map[  2 ] =   -16;
        extmeter.map[  3 ] =    -4;
        extmeter.map[  4 ] =     8;
        extmeter.map[  5 ] =    20;
        extmeter.map[  6 ] =    32;
        extmeter.map[  7 ] =    44;
        extmeter.map[  8 ] =    56;
        extmeter.map[  9 ] =    68;
        extmeter.map[ 10 ] =    80;
        extmeter.map[ 11 ] =    92;
        extmeter.map[ 12 ] =   104;
        extmeter.map[ 13 ] =   116;
        extmeter.map[ 14 ] =   128;
        extmeter.map[ 15 ] =   140;
        break;
    }

    return;
}

呼出しグラフ:

BOOL EXTMETER_main ( void   ) 

extmeter.c165 行で定義されています。

参照先 SSM_DATA::boost, SSM_DATA::coolant, DAC_setvalue(), SSM_DATA::engine, EXTMETER_BOOST, EXTMETER_COOLANT, EXTMETER_ENGINE, EXTMETER_INTAKEAIR, EXTMETER_SETTING, EXTMETER_SPEED, EXTMETER_THROTTLE, SSM_DATA::intakeair, EXTMETER::map, EXTMETER::setting, SSM_DATA::speed, ssm_data, EXTMETER::target, SSM_DATA::throttle, と TRUE.

参照元 main().

{
    unsigned int i;
    double data;

    /* 出力するデータを選ぶ */
    switch(extmeter.target){
    case EXTMETER_SETTING:      DAC_setvalue(extmeter.setting); return(TRUE);

    case EXTMETER_SPEED:        data = ssm_data.speed;          break;
    case EXTMETER_ENGINE:       data = ssm_data.engine;         break;
    case EXTMETER_BOOST:        data = ssm_data.boost;          break;
    case EXTMETER_THROTTLE:     data = ssm_data.throttle;       break;
    case EXTMETER_COOLANT:      data = ssm_data.coolant;        break;
    case EXTMETER_INTAKEAIR:    data = ssm_data.intakeair;      break;
    default:                                                    break;
    }

    /* マップから出力値を選ぶ */
    for(i = 1; i < EXTMETER_DIV; i++){
        if(extmeter.map[i - 1] <= data && data < extmeter.map[i]){
            DAC_setvalue(((i << 4) & 0xf0) | ((unsigned char)(((data - extmeter.map[i - 1]) / (extmeter.map[i] - extmeter.map[i - 1])) * EXTMETER_DIV) & 0x0f));
        }
    }

    return(TRUE);
}

関数の呼び出しグラフ:

呼出しグラフ:


変数

extmeter.c40 行で定義されています。