IDEが構築できたら次はファームウェアを作成しPIC24ロードして動作させる訓練。以下にPIC24のPort E4に接続したLEDを点滅させるプログラムをテストする。最初は1つ1つの理屈を分かろうとせずやり方に慣れることに集中する。
Window | 操 作 | |
1 | IDE初期画面 | すでに、別のプロジェクトが開いているときは、Fileメニュー → Close AllProject コマンドを実行してすべてのプロジェクトを閉じる。 Fileメニュー → New Project コマンドの実行。その後はチュートリアル等に従ってLEDBlinkプロジェクトを作成する。 既にLEDBlinkプロジェクトを作成していた時は、Fileメニュー → Open Project(または → Open Recent Project)でLEDBlink.Xフォルダ(またはLEDBlink)を選択して開く。 |
2 | IDE : LEDBlinkプロジェクト | 左上ペインのProjectタブ内のSource Filesを右クリック。表示されたメニューから、New → mainXC16.c...を実行。 |
3 | New mainXC16.c | File Name:にBlinkと入力し、Finishボタンをクリック。すると、Source Filesの下にBlink.cが生成され、右側にその内容が表示される。 |
以下のように、生成したBlink.cのmain()関数の中身を変更し_T1Interuptという割込制御用関数を追加する(このコードはオプティマイズさんのコードをそのまま引用した)。尚、以下のコードでは空白を全角の空白で作っているため、そのままコードをコピー&ペーストするとコンパイルエラーとなる。従って、コピー&ペーストの後空白部を半角の空白やTABに書き換えるか、コードを打ち込むのが面倒くさい時にはBlink.cをダウンロードすること。
また、IDEのソースコードはコメント部分に日本語(全角文字)を書くと文字化けするので半角英数のみの使用となる。
int main(void) {
CLKDIV = 0; //Peripheral:32MHz CPU:32MHz USB:48MHz
AD1PCFG = 0xffff; //AN0-15 are set to digital inputs.
_TRISE4 = 0; //Port E4 is set to output.
//Timer 1 Setup
PR1 = 6250-1; //(32000000/2)/10/256 = 6250
T1CON = 0b1000000000110000; //Prescaler 1/256, blinks with 10Hz
_T1IE = 1;
for(;;) {
;
}
return 0;
}
void __attribute__((interrupt, no_auto_psv)) _T1Interrupt(void) {
_T1IF = 0;
_LATE4 = !_LATE4; // invert Port E4
}
PICの立ち上がり直後の基本動作を規定するためにConfiguration Bitsを予め指定しなければならない。WindowメニューのTarget
Memory View → Configuration Bitsコマンドを実行する。すると右下のペインにConfiguration Bitsタブの内容が表示される。その内容を右図のように変更する。変更すべき行のOption列またはSetting列を左クリックすると選択肢が表示されるのでその中から選択する。デフォルトの設定から変更された場所が水色で表示されている。
これらの指定は、ソースコード上では#pragmaディレクティブ行を並べて表現する。右図Configuration Bitsの下にGenerate Source Code to Outputボタンがあるのでそれを左クリックし、Blink.cと同じフォルダ内に、ConfigBits.c(名前は実は任意だが)という名前で保存する。更に、左上のProjectタブのSource
Filesを右クリックし、表示されたメニューからAdd Existing Item...を実行しConfigBits.cをプロジェクトに加えておく。この結果、Source
Filesの下にBlink.cとConfigBits.cの2つが登録される。
これらの作業が面倒な場合は、ConfigBits.cをダウンロードすること。
Clean and Build Main Projectの実行
【方法】(1) ProductionメニューのClean and Buid Main Projectコマンドの実行 (または、対応するツールバーアイコン)
(2) ショートカットキー:Shift+F11
→ コンパイルがうまくいけば、OutputペインにBUILD SUCCESSFUL (total time: xxx s)と表示される。
main()関数の先頭で実行が止まるように、デバッグオプションを設定する。
Window | 操 作 | |
1 | IDE初期画面 | Toolsメニュー → Optionコマンドの実行 |
2 | Options | アイコンメニューのEmbeddedを選択。 |
3 | Options | Generic Settingsタブを選択。表の下から2行目にDebug Startup (......)とあるので、その右側の列でHalt at Mainを選択しOKボタンをクリック。 |
【方法】DebugメニューのDebug Main Projectコマンドの実行 (または、対応するツールバーアイコン)
【結果】1.プロジェクトがビルドされる。
2.Simulatorがデバッガとして起動する(プロジェクト作成時にSimulatorをデバッガとして選択していたので)。
3.デバッグ操作に必要なアイコンがツールバー上に表示される。
4、ソース上のmain()関数の最初で実行が止まり、薄緑色のラインが表示される。