R8C/38CのPD0が変更出来ない

R5F2138CCNFPのポート設定で、PD0が書き変わりません。プログラム上からもHEWのツール(I/O)からでも書き変わらず\”0\”のままです。プログラムの先頭で、まだ、クロック設定しかしていないのですが、何かP0の設定に影響する要因が有るのでしょうか。
ポート設定処理では、prc2 = 1;・・・・prc2 = 0;で閉めています。PD0以外はプログラムからも、ツールからも書き変わります。何か分かりましたら教えて頂けますか。
Parents
  • tantakaさん

    こんにちはTOYKEYと申します。


    >PRC2 ビットを“1”( 書き込み許可) にした後、
    >SFR 領域に書き込むと“0”になります。
    >と有りますが、この説明が理解しずらいです。
    →PRC2でPD0のプロテクトを解除したあと、何か
     レジスタをいじると自動的にプロテクトが
     復活するという意味です。
     当然ながらデバッガでブレークをかけると、
     内部的にはレジスタをいじっちゃいます。
     よって

     プロテクト解除
     ↓
     PD0の設定

     という一連の流れの中でブレークを貼らないで
     ください。

     つまり
     prc2 = 1; ←ここでブレークしちゃダメ
     pd0 = 0x0f;←ここでブレークしちゃダメ
     p0 = 0x03 ←ここで確認してみましょう

     それでもだめならまた書き込んでください。
Reply
  • tantakaさん

    こんにちはTOYKEYと申します。


    >PRC2 ビットを“1”( 書き込み許可) にした後、
    >SFR 領域に書き込むと“0”になります。
    >と有りますが、この説明が理解しずらいです。
    →PRC2でPD0のプロテクトを解除したあと、何か
     レジスタをいじると自動的にプロテクトが
     復活するという意味です。
     当然ながらデバッガでブレークをかけると、
     内部的にはレジスタをいじっちゃいます。
     よって

     プロテクト解除
     ↓
     PD0の設定

     という一連の流れの中でブレークを貼らないで
     ください。

     つまり
     prc2 = 1; ←ここでブレークしちゃダメ
     pd0 = 0x0f;←ここでブレークしちゃダメ
     p0 = 0x03 ←ここで確認してみましょう

     それでもだめならまた書き込んでください。
Children
No Data