Tag Archives: MPLAB

[MPLAB]ブレークポイントで表示される黄色い”B”マークの意味

2012年11月16日 (カテゴリ: PIC:)

PICの開発環境であるMPLABで、ブレークポイントをセットすると、赤色の”B”マークが表示されます。 ですが、開発を行っていると時々、以下の様に黄色い”B”マークが表示される事があります。 この黄色のBの意味は、アセンブリコードに対するブレークポイントです。 厳密に言うと、C言語1行に対して複数行のアセンブリが生成されたとき、生成後アセンブリの1ステップ目以降のコードにブレークポイントが張られたとき、黄色のマークになります。 C言語レベルでのデバッグを行っている場合、黄色のブレークポイントだと、該当行に矢印がある時点でアセンブリの一部分だけが実…


続きを読む

[PIC]MPLABでICD0191エラーが出た時の対処法

2012年11月10日 (カテゴリ: PIC:)

表示されるエラーメッセージ ICD0191: Unable to perform operation as hardware memories are locked. Try later. ICD0191エラーが発生するのは、MPLAB ICD2が他の機能で使用されている為、操作したかった作業が出来ない時に発生します。 対処法としては、通常はそのまま待って、しばらくしてからもう一度同じ作業をすると正常に動作します。 それでもダメな場合は、一度MPLABを再起動&ICDのケーブルを刺しなおして下さい。


続きを読む

[HI-TECH C] “Warning [228] illegal character”警告が出る場合の対処法

2012年11月3日 (カテゴリ: PIC:, , )

HI-TECH Cでプログラムをコンパイルすると、以下のようにWarning [228]の警告が出ることがあります。 これは”警告”なのでコンパイルは完了し、大抵の場合プログラムは想定どおり動作することが多いです。 Make: The target "C:\home\project\pic\16F84A_LCD\main.p1" is out of date. Executing: "C:\Program Files\HI-TECH Software\PICC\9.83\bin\picc.exe" –pass1 C:\main.…


続きを読む

PIC16F84Aで,HI-TECH Cを使用してLCD出力を行う

2012年11月3日 (カテゴリ: PIC:, , , )

PIC16シリーズの定番、PIC16F84Aを使用してLCDへの出力を行うプログラムです。 16F84AでC言語を使用したLCD制御のサンプルは、意外と見つからないので公開しておきます。 LCDは16文字x2行表示が行えるSC1602を使用します。 また、Cコンパイラは、HI-TECH Cを使用します。HI-TECH Cは、PICC LITEとも呼ばれています。 HI-TECH CにはLCD制御用のライブラリがない為、プロトコルを確認してコマンド送信を自前で実装する必要があります。 動作確認はPIC16F84Aで行っていますが、特殊な事はしてないので16Fシリーズなら基本的にどのチップでもその…


続きを読む

[PIC]ICD2デバッグ時に「ICD0154エラー」が出た場合の対処法

2012年11月2日 (カテゴリ: PIC:, )

エラーの内容 MPLABでMicrochip ICDを使用してプログラム書き込み/デバッグを行っている時に,以下のエラーが発生する(メッセージ中の”TM = Running”の部分は、変わる場合があります)。 MPLAB ICD 2 ready for next operation ICD0154: Invalid target mode for requested operation (TM = Running)Running Target ICD0083: Debug: Unable to enter debug mode. Please double click …


続きを読む

[PIC]MPLAB ICDで、「ICDWarn0015エラー」出た場合の対処法

2012年11月1日 (カテゴリ: PIC:, )

現象 MPLABでICDを使用してデバッグしようとすると、以下のエラーメッセージが表示される。 ICDWarn0015: Program memory has changed since last program operation? Continue with Debug operation? コンソール上では、以下の様なメッセージが出力されます。 ICD0083: Debug: Unable to enter debug mode. Please double click this message for more information. ICDWarn0015: Program mem…


続きを読む

[PIC]ICDWarn0013エラーが出る時の対処法

2012年11月1日 (カテゴリ: PIC:, )

MPLABでPICのライタにICD2を使用している場合、プログラムをデバッグ実行しようとした時に以下のエラーが出る事があります。 ICDWarn0013: Low Voltage Programming cannot be enabled when ICD 2 is used as a debugger. Disable Low Voltage Programming? これはPICのICD2をデバッガとして使用するときに,ICD2がLVPに対応していないからです。 LVPというのはLow Voltage Programmingの略で、低電圧でPICへプログラム書き込みを行う機能です。 このエ…


続きを読む

[PIC]C30コンパイラをインストールする(dsPIC,PIC24用)

2012年10月12日 (カテゴリ: C, PIC:, , , , )

本記事ではPICのC言語向けコンパイラである、C30コンパイラのインストールと動作確認を行います。 C30コンパイラの正式名称は”MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs”で、dsPICや,PIC24シリーズなどの16bitマイコンで使用可能なCコンパイラです。 C30コンパイラはPRO、Standard、Liteと3つのバージョンがありますが、今回は無償で利用可能なLite版を使用します。Lite版でもコンパイラとしてはフル機能が利用できますが、最適化が部分的にしか使用できないため生成される実行ファイルのサイズが若干…


続きを読む

[PIC16F88]HI-TECH CでTimer1割り込みを使用する

2012年10月6日 (カテゴリ: C, PIC:, , )

PICの16F88はTimer0,1,2という3つのタイマーモジュールを持っており、それぞれのタイマーは役割が異なっています。 今回は、16F88でHI-TECH Cを使用してTimer1割り込みを利用し、0.5秒周期でLEDを点灯させてみます。 クロックは16F88の内部オシレータを8MHzで駆動させます。 #include <stdio.h> #include <htc.h>   #define TIMER_INTERVAL (0xffff – 20000) // TMRモジュールのカウント初期値 // 8MHz, 1/1プリスケーラで、10msecごとに…


続きを読む

PIC16F84AをC言語で,MPLAB IDE環境で開発する

2012年8月26日 (カテゴリ: C, PIC:, )

PIC16シリーズでは、入門者向けとしてよく使用されているPIC16F84Aですが、プログラムの格納エリアが小さいため通常はMPASMというアセンブラを使用してプログラムを行う事が多いです。 PICの製造メーカであるMicroChipが提供している統合開発環境のMPLABでも、標準ではアセンブラしか用意されていません。ですが、実はMicroChipはCのコンパイラも用意してくれているので、追加でコンパイラをインストールすれば、Cで開発する事も可能です。 今回はMPLABで、PIC16F84AのプログラムをC言語で開発する方法を説明します。 C言語によるPICプログラミング入門 MicroChi…


続きを読む

[MPLAB]エラー”Argument out of range. Least significant bits used.”が出る時にチェックすべき事

2012年7月25日 (カテゴリ: PIC:)

MPLABでアセンブル時、Warning[202] Argument out of range. Least significant bits used.エラーが出る場合があります。 このワーニングは、セットした値を代入したとき代入先に値が入りきらないという警告です。 warningなのでhexファイルは作成されますが、値が意図したとおりセットされず、プログラムの動作は期待したものとは異なってしまうため、修正が必要です。 問題が発生する状況を分かりやすい例で言うと、以下のコードはWarning[202]が発生します。 MOVLW 0x100 Wレジスタは8ビットなので最大で0xff(255)し…


続きを読む

[MPLAB]エディタのフォントサイズを変更する

2012年7月2日 (カテゴリ: 未分類:)

PICの開発環境としてスタンダードなMPLABですが、インストール直後の環境だとエディタのフォントサイズが微妙に大きく、ソース全体が見渡し辛いので可読性がちょっと劣ります。 このフォントサイズですが、以下の手順で変更することが可能です。 エディタを表示させ、右クリックし、メニューの一番下にある”Properties…”を選択します。 Textタブにある”Select Font”ボタンをクリックします。 見慣れたWindow標準のフォント選択ダイアログが表示されるので、お好みのフォントに変更してください。 MSゴシックの9ptあたりにす…


続きを読む

MPLABでPICkit3使用時,PICkit3から電源を供給する

2012年7月1日 (カテゴリ: PIC:, )

MPLABでPICへのプログラム書き込みにPICkit3を使用している場合、PICkit3から回路へ電源を供給することが出来ます。 電源供給はMPLABで設定を行います。 MPLABを起動し、Programmer->Settingをクリックします。 Powerタブをクリック後、”Power target circuit from PICkit3″にチェックを入れるとPICkit3側からPIC回路へ電源を供給することができます。 供給する電圧は、画面よりある程度指定可能です。 スライドバーを操作することで、2.75V~5.5Vを選択可能です。 電流については30mAが上限…


続きを読む

PICkit3を使ってMPLABからプログラムを焼く方法

2012年7月1日 (カテゴリ: PIC:, )

前回MPLABを使ってプログラムを作成する方法を確認したので、今回は作成したプログラムを実際にPICへ焼いてみました。 今回の書き込みを行ったのはPIC16F84Aです。 PICへの書き込みにはライタが必要なので、まずは以下のハードを用意します。 用意する道具一覧 PICkit3 今回、ROMの書き込みにはPICkit3を使用しました(PICkit2でも書き込み可能です)。 楽天だと2021年7月現在、Debug Express付きのものが1万円ほどで販売されているようです。 プログラムの書き込みだけならDebug Expressは不要です。PICkit3単体だと4000円程度で入手できます。…


続きを読む

[MPLAB] MPASMアセンブラで良く出るエラーメッセージとその対処一覧

2012年6月28日 (カテゴリ: PIC:, )

PICの開発をMPLABを使用してアセンブラ(MPASM)で開発しているときに、良く表示されがちなエラーメッセージとその対処法の一覧です。 開発を始めたばかりは、特にエラーの意味が分かり辛く、デバッグに手間取る事もあるので参考にしてみてください。 ※以降のメッセージと対処法はP16F84Aの場合を元に説明しています。  他のPICを使用している場合は、一部対処法が異なる場合もあるかもしれません。  その場合は各自読み替えてください。 よくあるエラーメッセージ一覧 Register in operand not in bank 0. Ensure that bank bits are corre…


続きを読む

[PIC]MPLABでデバッグ時に,入力用ポートの値を操作する(Stimulusウィンドウ)

2012年6月27日 (カテゴリ: PIC:)

MPLABでは実際のマイコンチップを用意しなくても、IDE上に用意されたシミュレータを使用してプログラムをデバッグする事ができます。 また、PICマイコンでは入出力ピンを使用して外部とのデータをやり取りを行います。 この際に出力ピンについては、PORTAやPORTBなどのレジスタ値を見れば0/1のどちらが出力されているか、確認する事ができます。一方、入力については、実機上はボタンなどを用意すれば入力のON/OFFを変更できますが、シミュレータ上ではボタンが無いのでピンの状態を変更する事が出来ません。 このようなときはStimulus機能を使用することで、ピン状態を変更する事が可能です。 Sti…


続きを読む

[PIC]MPLABで作成されたhexファイルのフォーマットを解析する

2012年6月27日 (カテゴリ: PIC:, )

MPLABで開発を行い、コンパイル(orアセンブル)を行うと*.hexファイルが作成されます。 PICのマイコンへは、hexファイルを元に書き込みが行われます。 このhexですが、エディタで開いてみると普通のテキストファイルである事が分かります。 前回の動作確認で作ったasmファイルを確認してみると、以下の様な内容になりました。 作成したPICのアセンブラコード ; LEDを点滅させる ; (点滅が速過ぎるので、実機で実行すると目視では確認できませんが…) LIST P=16F84 INCLUDE P16F84A.INC ORG 0   ; ポートBのRB0ピンを出力にする BS…


続きを読む

[MPLAB]作ったプログラムのデバッグ実行が出来ない場合の対処法(Debugger->Run)

2012年6月26日 (カテゴリ: PIC:)

MPLABでは、IDEなので当然ですが、作成したプログラムをPC上でデバッグ実行する事が出来ます。 メニューバーのDebuggerを選択すると、以下のようにF9を押す事で、デバッグ実行が可能です。 なのですが、MPLABをインストールした直後では、なぜかPC上での実行が出来ない状態になっています。 Debuggerメニューを見ても項目が2つしかありません… というわけで、MPLABでデバッグ実行を行うための設定方法ですが、以下の作業をすればOKです。 Debugger->Select ToolにあるMPLAB SIMを選択し、チェックを入れます。 以下のようになっていればOKです。…


続きを読む

[PIC]MPLABでLED点滅プログラムを作成する

2012年6月26日 (カテゴリ: PIC:)

前回、PIC開発用のIDEであるMPLABのインストールが出来たので、今回はソフト作成の流れを確認しつつ、LEDを点滅させるプログラムをアセンブラで作成します。 プログラムは、実際にPICに書き込まなくてもPC上でデバッグ実行できるので、今回の作業内容ではPICのICはまだ必要ありません。 また、途中でも説明していますが、今回作成のプログラムではLED点滅のプログラムを作っていますが、実は一点問題があります。それは、動作が非常に速いので実際にPIC上で動作させると速すぎ、点滅している事が目視では確認できないことです。 PC上でのデバッグ確認では支障が無いので、ここではPC上での操作方法と動作確…


続きを読む