ちょっとした制御をPICでやろうとまた思いたちました。以前
ハンダゴテタイマーをPICで作りましたが,そのプログラムを
見てみると,全く忘れてしまいました。
そこで,また,最学習することに・・・・・・・・。
今回もプログラミング言語は「C」を使いますが,PICの細かい設定
とうについて,全く忘れてしまいましたので,備忘録代わりに,
メモ帳代わりに記録していきます。
以前使った16F627Aです。
PORTAレジスタ・・・・ポートAの出力端子の電力レベルの設定
ポートAの出力端子(RA7~RA0)
例 一括設定
PORTA=Ob00000000(RA7~RA0が0Vに設定)
0b・・・2進数
0・・・・・・8進数
0x・・・・・16進数
単独の設定
RA0=0(RA0を0Vに設定)
PORTBレジスタも同様の設定
TRISAレジスタ・・・・RA各端子の入出力の設定
0を書き込むと出力端子になる
1を書き込むと入力端子になる
例 一括設定
TRISA=0b00000000(RA7~RA0が出力端子に)
単独の設定
TRISA3=0 (RA3を出力端子に)
(16F627Aの場合RA5は入力専用なので,必ず入力に)
CMCONレジスタ・・・・・・汎用端子の役割設定
CMCOM=0x07 (下位3ビットを1に設定することで
1,2,17,18端子を入出力端子
に設定)
今日は,
この本で,ここまで復習。
プログラムを覚え初めの頃,
A=A+1
という表記が納得いきませんでした。数学や算数では,成り立ちません。
この場合,「=」はイコール(等しい)ではなくて,代入するという
意味です。ちなみに等しいかどうかの判別は,「==」イコール
を二つ並べます。プログラム覚え立ての頃,ここではまりました。
IF(A=1){処理1}
こんな風に書いて思った結果がでませんでした。これだと,Aに1が
代入されてしまいます。正しくは,
IF(A==1){処理1}
でした。