2023年9月15日の日記の1番目の記事へのコメント

PIC

前々からPICのコードを書いていて気になっていたことの1つに、GPIOを入力から出力に変えたとき、なぜかデフォルトで1になっている場合があるというのがあったりするんですが、PICのマニュアルをよく読んだら何か書いてありました。理解が間違っていなければ、以下のようです。

  • GPIOの出力ポートの値をBCF命令もしくはBSF命令で1bitずつ変更する場合、GPIOからの出力用のデータを保持したラッチをRead-Modify-Writeをすることになる
  • Read-Modify-WriteのReadのときに、GPIOに入力属性のポートがあると、そのポートについては外から入力されている値を読み込んでしまう (出力属性のポートは、出力している値が読み取られる?)
  • Read-Modify-WriteのWriteによって、入力属性のポートから読み取った値が、出力用のデータを保持したラッチの、そのポートに対応したビットに設定される
  • 後々になって、入力属性のポートを出力属性に変えると、上記でラッチに設定された値が初期値として出てしまう

これが正しいとするなら、GPIOを出力に変える際の初期値をコントロールするには、まず入力属性の状態のうちにそのポートの初期値を設定して、その上で、そのポートだけを出力に切り替えればよいのかな。必ず1ポートずつ操作する感じで。

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2023年9月15日の日記の1番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2023年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ