G2507_U35_MCP23017_I/Oエキスパンダー(入力)

202517

9:50

G2507_lpc11u35_MCP23017_io_expander_input_report

 

実験後の考察

 

16bit I2C I/Oエキスパンダー MCP23017: 半導体 秋月電子通商-電子部品・ネット通販

 

 

 

 

共用関数の手直し MCP23017_red()

 

 

 

プロジェクトの説明、入力テスト

 

 

uint8_t old_dat[8+1];

 

    // 誤動作防止のため、実装されていないバンクはアドレスゼロ設定必要

    Exp_23017_add_tbl[0] = 0x40;

    Exp_23017_add_tbl[1] = 0;

    Exp_23017_add_tbl[2] = 0;

    Exp_23017_add_tbl[3] = 0;

 

 

    // 16ビットすべて入力に設定する

    MCP23017_inp_init(0);        // バンク単位入力設定

    MCP23017_inp_init(1);        // バンク単位入力設定

 

    // 前回データの更新

    MCP23017_red(0); old_dat[0] = Exp_23017_dat[0];

    MCP23017_red(1); old_dat[1] = Exp_23017_dat[1];

 

 

MCP23017_red(0);        // バンク0 読み込み

MCP23017_red(1);        // バンク1 読み込み

 

if(old_dat[0] != Exp_23017_dat[0] || old_dat[1] != Exp_23017_dat[1])

{

// 変化がありました

UART_puts("PA (");

for(i=0;i<8;i++) UART_msg_dec("",MCP23017_bit_chk(0,i)," ");

UART_puts(")  PB (");

for(i=0;i<8;i++) UART_msg_dec("",MCP23017_bit_chk(1,i)," ");

UART_puts(")\r\n");

 

// 前回値更新

old_dat[0] = Exp_23017_dat[0];

old_dat[1] = Exp_23017_dat[1];

}

 

実験結果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

速度計測