Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC24FJ64GA002 PORTとLAT

最近になってPIC18FとかPIC24FJとかの上位のチップで遊ぶようになって、気にはしていたけど面倒だから無視していたことに、LATレジスターの存在がある。
下位のチップには無かったものだ。
今までは特に支障が無かったので、いままでの通り何も考えずに PORTBbits.RB5 = 1; とかしていたわけだ。

ところが、ある回路でいくらやってもうまく動かないので、レジスタの設定ミスでI/Oピンの出力がおかしいのかと思い、試しにこんなことをしてみたら、

こうなった。
portlattest_01
ああ、やっぱりな、毎度の設定漏れだなと決め付けようとしたが、ふと思い立って、こうしてみたら、

意図したとおりの動作になった。
portlattest_02
コレだけの速さで変更を加えられてもPORT的にはついて来れないということだろう。
もちろん、PORTにぶら下がってる回路にも関係あることだろうし。
portlattest_03
32MHzで駆動しているので、62.5nsということになる。

ということで、ことの詳細は検索でもかければ分りやすい説明がされているので省くとして、うまく動かなかったコードのPORTとなっていた部分をLATに書き換えたら問題は解決した。

このエントリーをはてなブックマークに追加

Posted under: PIC24FJ64GA002


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.