本文へスキップ


Microchio PIC : [LEDBlink] ソース構築とデバッグ

 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
}

Configuration Bitsの設定

  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()関数の最初で実行が止まり、薄緑色のラインが表示される。


> 次に進む