MPLABX IDEシミュレータの使い方( Stimulus その3 )

関連

MPLABX IDEシミュレータの使い方( Stimulus その1 )
MPLABX IDEシミュレータの使い方( Stimulus その2 )
MPLABX IDEシミュレータの使い方( Stimulus その4 )
MPLABX IDEシミュレータの使い方( Stimulus その5 )

Stimulusのつづき。今回はPin/Register Actionsについてメモを残しておく。

デフォルトの画面

mplabx_pin_register000a

ざっくりとした使い方

mplabx_pin_register002

とりあえずADRESLレジスタの値を100usごとに値を変えてみる。

mplabx_pin_register003

以下のプログラムは、上記の設定に合わせてADRESLの値を変えていって、ループ内で該当する値に合わせてピンのHigh/Lowを切り替えている。これでLogic Analyzerでピンの値をモニタリングしてみる。

※下記のプログラムに深い意味はないです。

while (1)
{
    if( ADRESL == 0x01 ){
        IO_RA1_SetHigh();
        IO_RA2_SetLow();
        IO_RA4_SetLow();
        IO_RA5_SetLow();
    }else if( ADRESL == 0x02 ){
        IO_RA1_SetLow();
        IO_RA2_SetHigh();
        IO_RA4_SetLow();
        IO_RA5_SetLow();
    }else if( ADRESL == 0x03 ){
        IO_RA1_SetLow();
        IO_RA2_SetLow();
        IO_RA4_SetHigh();
        IO_RA5_SetLow();
    }else if( ADRESL == 0x04 ){
        IO_RA1_SetLow();
        IO_RA2_SetLow();
        IO_RA4_SetLow();
        IO_RA5_SetHigh();
    }
}

結果は下図になる。どうもこの機能には不具合があるようで、一番下の行が設定されない。なので一番下の行にダミー行を入れておいたほうが良い。

mplabx_pin_register004

ダミー行を追加して再度トライ。(400usの行がダミー)

mplabx_pin_register005

RA5のピンもHighになるようになった。

mplabx_pin_register006

前回試したRegister Injectionのほうが使い勝手は良いが、こちらはレジスタだけでなくピンの値も設定できる。SCLファイルなどに出力して、ファイル上で加工して再度インポートするのも良いかもしれない。