半田ごてを握ったら書くブログ 2nd

半田ごてを握ったら書くブログの続きです。

PICKit2

11日にはPICKit2が着いていたが、なんだかんだと本業が忙しく今日になって開封
とりあえずPIC16F648Aを試そうと思うので、ICSP用のプローブをつくる。ついでにUSB-PDCのバッテリーチャージ用のケーブルをバラしてワニ口クリップをつけてブレッドボード用の電源ケーブルを作る。さらについでに電源確認用にLED+抵抗をハンダでくっつけて動作確認ランプをつくる(2こ)。

さて、PICのプログラムのほうは事前にインストールしてあったMPLABで開始。
やはり最初はLEDの点滅でしょう。と、でも簡単なのはつまらんので、タイマ割込みも使ってみましょ。と、PIC初心者のくせにハードルを設定。F648A自身のプログラムサンプルをweb上で探すがたいしたものなく、16F84(A)の解説ばかり。んま、そんなに違わないので参考にする。アセンブラニーモニックは完全にwebを参照にしながら書く。
ゼロフラグやらキャリーフラグなど実に懐かしい単語。オーバーフローしたら0になるなんてのも久々に意識しならが。
コンフィグレーションやらファンクションレジスタの意味やらをインクルードファイルと解説ページとデータシートをつき合わせながら徐々に理解。

最初、タイマ割込みの記述を間違っており、シミュレーションでぜんぜん動かなかったが、わかってしまえばなんてことはない。割込み内にブレークポイントを仕掛けて、カウンタで使っているファイルレジスタをPORTBに出力してMPLABN内のロジックアナライザで確認。各bitがちゃんと出力されている。
あ、PORTAの出力設定がいまいちうまくいっているのかどうか不明(0xFFを書き込むと0xD0が出力されている)。PORTAってコンパレータの設定あたりと絡んでちと面倒だな。メモリバンクも4つあるのでバンク切り替え時はSTATUSの設定を2回しなければならないのも面倒。


ここで娘が起き出したのでタイムアウト。続きは翌々日かな。