SSブログ

なんとか復旧しました [PICkit3]

グシャグシャになってしまったPIC10F322の開発環境ですが、何とか復旧させることができました。

”アップデートしたMPLAB IDEをアン・インストールしても元に戻らない”と書きましたが、実はアン・インストール後も”C:\Program Files\Microchip\MPLAB IDE”以下にファイルが残っていることが気になっていました。

それをマニュアル操作で削除して、MPLAB IDEの最新版(V8.83)をインストールし直しました。しかし、それだけでは駄目(ターゲット・デバイス ミスマッチ)で、PICkit3を(パソコンから一旦外して)接続し直したところ、プログラマで書き込める(元の)状態に戻りました。(パチパチパチ~)

デバッガは相変わらずターゲット・デバイス ミスマッチになり、シミュレータの動作も変なままですが、取りあえず開発を進めることが出来るようになりました。

空きポートにLEDを付けて、割り込みの発生状況を確認したところ、TMR0割り込みもTMR2割り込みもちゃんと機能していました。NCO割り込みも入って一安心と思ったら、NCO1INCレジスタの値を変えてもNCO割り込みのインターバルが変化しません。NCOもシミュレータでは動作しないので、実機の中で何が起きているのか見当もつかず、暫く途方にくれていました。

NCO割り込みのインターバルから、NCO1INCレジスタが初期値のまま動作している(書き換わっていない)ように思われたので、NCO1INCLレジスタの設定方法(NCOをイネーブルする前にNCO1INCLレジスタを設定していた)を見直すことにしました。

マニュアルには以下のように書かれています。

20.1.4 INCREMENT REGISTERS

<一部省略>
The buffer loads are immediate when the module is disabled.
Writing to the MS register first is necessary
because then the buffer is loaded synchronously with
the NCOx operation after the write is executed on the
lower increment register.

前半部分を読むと、”NCOをイネーブルする前にNCO1INCLレジスタを設定する方法”で良さそうに思ったのですが、後半の”the buffer is loaded synchronously with the NCOx operation”に着目して、NCOをイネーブルしてからNCO1INCH、NCO1INCLの順にレジスタを設定してみました。すると・・・

”ビンゴ~!”

何だか釈然としませんが、取りあえずNCO割り込みも期待通りの動作になりました。

====================================
”PICの開発はLEDピカピカから始まる”という鉄板セオリーはPICkit3になっても健在です。
====================================

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。