Sahara's WebLog

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

TRISA = 0x11111111;

今日はいつもにも増してお馬鹿だったので書く。
表題の通り、TRISAの値を「0x11111111」と書いてRA1の挙動がおかしいと悩んでいたのだった。
Inputとして使うつもりで…。
正しくは「0b11111111」と書くか、あるいは「0xFF」と書く、当たり前だが。
間違えて書いた「x」は16進数をあらわすので、「0x11111111」はこうで、
trisaxb1
いかにも2番目のビットが1のように思えるが、実際には2進数でこういう値を設定したことになる。
trisaxb2
つまり、2番目のビットは0で、RA1はInputでなくOutputとして使う設定になってたというわけ。
そりゃうまく動かんわ。

8ビットのレジスタだということは分かっているんだから、コンパイラが教えてくれても良さそうな感じもするが、教えてくれない。

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

Posted under: PIC その他


コメントを残す

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

Time limit is exhausted. Please reload CAPTCHA.