当ブログをご覧いただき、ありがとうございます。
ご注意事項:
記載内容には、十分注意しておりますが、勘違い、記憶違い、理解不足、思い込み等が無いとは限りませんので、申し訳ありませんが、 記載内容の正確性は保障致しません(出来ません)。
従いまして、このブログの内容を参考にする事に起因して生じる、または 生じた、いかなる事態にも、当方は何の責任も取れませんので、 参考にされる場合は、自己責任にてお願い致します。
このブログのC言語に関する説明には、PICで電子工作するのに必要な事柄以外(私のレベルで)は出てきません、出てこないことの方が多いと思いますので、ご了承願います。

さあ、プログラムを書き始める。

右足痛は、ほぼ良くなりました、C言語でプログラムを書くを再開です。

 

LED Flush のプログラムを書き始めますが、プログラムの先頭に、PICのコンフィギュレーションの設定を記述しなければなりません。

この設定はPICの型番ごとに、専用の設定が必要なので、MP LAB では、設定専用の項目があって、それを操作すると、自動的にプログラムを作ってくれます。

では、早速、

f:id:higonohimajin:20210216105033j:plain

初めに、上のMPLAB の状態から、上から2行目 File から始まる行の Window をクリックすると、ドロップダウンリストが出るので、上から2/3位の所にある Target Memory Views にマウスを合わせると、サブメニューがでるので、Configuration Bits をクリックします、すると、画面が変わり

f:id:higonohimajin:20210222123830p:plain

上のようになります、右下の表でコンフィギュレーションの設定をします。

なお、表の下が全部入っていない時は、上にスクロールすると下の方も見えますが、全体が見えないので、マウスを表と上の黒い枠との境界あたりに置くとマウスカーソルが上下の矢印になるので、そこでドラッグして上に移動すると表が上下に広くなり、全体が見えるようになります。

 

f:id:higonohimajin:20210222124416p:plain

表は、上のようになっています、これは、PIC16F627A専用の初期設定です、しかし、今回の LED Flush に使う設定に変更しなければなりません。

では、1行づつ説明しますが、ここでは、なぜ、そうするのかは説明しませんのでPIC解説書等を参考にしてください。

 

表の解説。

address;コンフィギュレーションの設定を記憶させる番地、2007番地に記憶しておくということ。

Name;2007番地はCONFIGという名前ということ。

Value;値、2007番地には3FFFが記憶されている、つまり、Optionの項の8個の設定の現在の設定を16進数で表すと3FFFであるということ。

Field;設定項目、FOSC以下CPまで、8個の設定項目がある。

Option;設定内容の選択したものを表示、右のvをクリックするとドロップダウンリストがでて、すべての選択枝が表示される。

Category;設定項目名称(例;Oscillator Selection Bits、発振器選択項目)

 Setting;設定内容説明(例;RC oscillator: CLKOUT fun-------/CLKIN  v  ;RC oscillatorに設定:設定により関係する各ピンの設定内容)右のvをクリックするとドロップダウンリストがでて、すべての設定内容説明が表示される。

各設定項目ごとの設定をします。

FOSC;発振器の選択(PIC動作の基準信号を作る発振器の動作選択をする)

Option の下の EXTRCCLK をクリックしてください、ドロップダウンリストがでて、8個の選択儀枝があります、今回は、内部発振を使うので、INTOSCCLKかINTOSCIOが選べ、内部発振信号を外部で使用しないので、INTOSCIOとしました。

WDTE;ウォッチドッグタイマー使用ON-OFF選択、今回はOFFとしました。

PWRTE;電源立ち上がり遅延タイマー使用ON-OFF選択、今回はONとしました。

MCLRE;RA5/MCLR/VPPピンをリセットピンとして使うかどうかの選択、リセットピンとして使うのでON。

BOREN;ブラウンアウト(最低必要電圧より電源電圧が下がったか)検出をするかどうかの選択、検出するのでON。

LVP;低電圧プログラミングを使用するかの選択、使わないのでOFF。

CPD;データEEメモリ保護を使うかどうかの選択、保護するとPICの外からデータEEメモリを読めなくなる(書くことはできるが、元の内容は消去される)つかわないのでOFF。

CP;プログラムメモリ保護を使うかどうかの選択、保護するとPICの外からプログラムメモリを読めなくなる(書くことはできるが、元の内容は消去される)つかわないのでOFF。

CPDとCPは、PICの商用使用で、内部プログラムを読みだされて、別のPICに使われたり、プログラムを解析されたりするのを防止するために用意されている。

 

f:id:higonohimajin:20210222141025p:plain

コンフィギュレーションの設定を今回使用する設定に変更しました、初期値から変更された項目は、注意喚起のマークが付き、項目の色が青くなります。

ちなみに、今回の設定変更で Value の値が3FFFから3F70に変化しました。

設定が終わったら、プログラムを生成してもらいます、表下の Generate Source Code to Output ボタンを押します。

 

f:id:higonohimajin:20210222142103p:plain

さっきコンフィギュレーションの設定をやっていた所に、プログラムが生成されました、これをコピーペーストして使いますので、// PIC16F627A Configuration Bit Settings から#include <xc.h> までを全部コピーします。

f:id:higonohimajin:20210302084744p:plain



左上のツリーの LED Flush.c をクリックするとMPLABマークの上のタブに、LED Flush.c というタブができるので、クリックするとLED Flush.cのプログラムを書く面が現れます、もし、その中に何か記載されていたら、全部消去します。

すると、面の左上の Souce という文字の下に1があり、そのすぐ右側でカーソルが点滅しているので、ペーストで貼り付けますと、上の画面のようになり、これで、実際のプログラムをかくことができます。

基本的にPICは、どれでも、設定項目の量が変わるだけで、同じようにやればよいのです。

 

実際のプログラムを書き始めるのは、次からです。