R8C/M1xAのポート入出力について

こんにちは。
教えていただきたいのですが
ポートを出力に設定する寸前の話ですが

私がプログラムを書くときは、という条件ですが
RX210を使用するときは
ポート出力初期データを「ポート出力データレジスタ」に
書き込みその後、「ポート方向レジスタ」を出力にします。

RX210は
「ポート出力データレジスタ」
「ポート入力データレジスタ」
の2つが存在するからです。

R8C/M1xAの場合は
入力出力兼用の「ポートレジスタ」のみです。
入力ポートから出力ポートに変更する前に

「ポートレジスタ」に初期値を書いても
ポートの入力レベルになってしまいます。

つまり
ポートがプルアップ処理なら1
ポートがプルダウン処理なら0
に強制的になってしまうようです。


ハードウェア的には出力ポートが設定されるまでの間の不安定を解消するためにプルアップなりプルダウンなりを処理するので問題は無いと思うのですが、プログラム筆記方法としては書いたほうが良いのでしょうか??何か不具合が発生する可能性があるのでしょうか??
一般論で結構です。
よろしくお願いいたします。





  • スタッフのチョコです。

    ばるご様のスレッドにコメントさせていただきます。


    >「ポートレジスタ」に初期値を書いても
    > ポートの入力レベルになってしまいます。

    これは,入力ポートの状態で読まれているからではないでしょうか。

    入力ポートの場合には,R8Cでは書き込みはポートラッチに書き込みますが,読み出すと端子の状態が読み出されます。しかし,この場合でもポートラッチにはきちんとした値が書かれていて,ポートを出力ポートに変更すると,このポートラッチの値が端子に出力されます。この状態でリードすると,ポートラッチの値が読み出せるようになります。

    > プログラム筆記方法としては書いたほうが良いのでしょうか??

    全く問題ありません。端子に変なひげを出さないためにはポートラッチに初期値を書き込んでから,出力ポートにしてください。

  • チョコ様
    ありがとうございます。

    実機にて確認できました。
    ラッチに書かれているようです。
    さすがにE8aではラッチ内容までは見えませんね・・・・

    お騒がせしました。
    また、お願いいたします。