ポートレジスタの設定

昨日から触りだしまして、

CS+ ,CC-RL ,E1エミュレータ使用で、

RL78G13スタータキットで、LEDチカチカをしようとしています。

最初にポートレジスタの初期化(P52とP53)をしたのですが、

ウォッチ式P5を見ると意図した数値になっていません。

0b00000100になっていて欲しいのに、0b00100111になっています。

 

E1を使わずに、RL78シミュレータを使うと正しく出来ます。

なぜこうなるのか、分かる方がいましたら教えてください。

  • > 最初にポートレジスタの初期化(P52とP53)をしたのですが、
    >
    > ウォッチ式P5を見ると意図した数値になっていません。
    >
    > 0b00000100になっていて欲しいのに、0b00100111になっています。

    76543210
    00000100
    00100111

    合っているのでは?

    > E1を使わずに、RL78シミュレータを使うと正しく出来ます。

    入力ポートになっているビットのオープン状態までシミュレートしてないからだと思います。

  • 返信ありがとうございます。

     

    >合っているのでは?

    P5 =  0b00000100;としているのに、

    0bit目と1bit目と5bit目が1になっています。

     

    リセット時に00Hになるはず。

    そしてP5=0b00000100;としているので、

    0bit,1bit,5bitが1になるのは、なぜでしょうか?

     

  • チョコです。
    ポートの入力/出力の設定(PM5レジスタの値)はどうなっていますか。PM5のbit5,bit1,bit0が1(入力)になっているのではないですか。
    参照されている図4-2の00Hの値はそこにも書かれているように,出力ラッチの値です。出力に設定してある端子では,出力ラッチの値が出力されます。また,読み出すと出力ラッチの値が読めますが。入力に設定されている端子では読み出すと,出力ラッチの値ではなく,端子の状態が読み出せます。
    ここらは,マニュアルの「4. 4 ポート機能の動作」に書かれています。
    E1の場合には実際の端子の状態を読み出したので,どうなるかは外部の状態で変化しますが,シミュレータでは,0にしているだけでしょう。
  • そうゆう事か!!理解出来ました。

    P5レジスタの働きが全然理解できてませんでした。

     

    >PM5のbit5,bit1,bit0が1(入力)になっているのではないですか。

    PM5のbit5,bit1,bit0は、入力になっています。

     

    入力ポートに設定したビットのPxxレジスタの値は入力値になっているんですね。

    ちゃんとマニュアルに書いてありました。

  • fujita nozomuさん,チョコさん
    ありがとうございました。
  • チョコです。
    かふぇルネの左側のブログ一覧に「チョコさんのRL教室」と言うのがあるので,こちらも参照してみてください。
    japan.renesasrulz.com/.../rl78-classroom