LoginSignup
1
1

More than 1 year has passed since last update.

PICマイコンでデバッグ初歩

Posted at

PICマイコンでデバッグしてみる

前回の「PICマイコンでシリアル出力」でも予告したどおり、ようやくデバッグまでたどりつく。とは言っても、基本のみ。でもこれが大事。

環境

初めてのPICマイコンで用いたPIC18F57Q43 Curiosity Nanoボードおよびソフトウェア開発環境MPLAB X IDE

ソースコード

ボード内にあるボタンが押されると、押された回数(count)だけ、ボード内のLEDの点滅を繰り返すもの。ボタン及びLEDのピンアサインについては、初めてのPICマイコンを参照されたし。また、それぞれのPINのに関するマクロがあったため、今回はそれらを使って、ON/OFFのセットや状態取得を行っている。下記コードを見れば、自明であろう。

main.c
#include "mcc_generated_files/mcc.h"

void main(void)
{
    int count = 0, gauge = 0;
    
    SYSTEM_Initialize();

    IO_RF3_SetHigh(); // off
    while (1)
    {
        while (!IO_RB4_GetValue()) {
            gauge++;
        }
        if (gauge > 1000) { // To avoid button chattering
            count++;
            printf("Pushed Count = %d\r\n", count);
            for (int i = 0;  i < count; i++) {
                IO_RF3_SetLow(); // on
                __delay_ms(200);
                IO_RF3_SetHigh(); // off
                __delay_ms(200);
            }
        }
        gauge = 0;
        __delay_ms(10);
    }
}

デバッグ

MPLAB X IDEでの設定およびデバッグ実行の説明である。

ブレークポインタ設定

ソースコード上でブレークポインタを設定したいところ(ここでは17行目)の行の数値「17」をクリックする。下記はクリック前。

クリック後には、下記のように変わり、ブレークポインタが設定されていることがわかる。

デバッグ実行

Debugメニューから、「Debug Main Project」を選択して、デバッグ開始。

ブレークポインタで止まる

ボタン(後述Continueなど)を押して、ブレークポインタで止まると、その行が緑色に変わる。また、Teratermを用いて、シリアル出力した結果も表示する。変数「count」はボタンを押した回数。期待どおり。なお、赤枠内の「Variables」をクリックすると、変数の状態(値)を表示する。
1.5のコピー.png
再度動作させるには、Debugメニューの下記赤枠内を選択する。

ここでは、ほとんど「Continue」を使った。

ブレークポインタで2回止まった後、動作(Continue)中。

再度ボタンを押す。
2.png
動作中、ブレークポインタ設定行は赤となる。

ブレークポインタで止まる(3回目)

また、ボタンを押す。3回目である。ここで、変数「count」の値をわざと変更する(赤枠をクリックする)。
3前のコピー.png
すると、下記のような編集可能なボックスが表示されるので、ここでは「count」の値を「7」に変更する。

OKをクリックすると、
7に変更2のコピー.png
となる。青枠内の上記数値が「7」になっている。ここで、Debug Menuで「Continue」すると、
7に変更3.png
シリアル出力でも、「count」が「7」に変更されていることがわかる。(結果として、LEDの点滅が7回行われる。)

ブレークポインタで止まる(4回目)

再度、ボタンを押す。4回目であるが、さきほど「Count」の値を「7」に変更したので、インクリメントされ、今回は「8」となる。
8前のコピー.png

ブレークポインタの状態

ブレークポインタが設定されている行で右クリックすると、下記が表示される。
BPenabled.png
ブレークポインタの有効化や無効化などが可能である。

終わりに

とりあえず、初めてのPIC利用の初期の目的は達成。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1