ものづくりコンテスト:PIC18F45K22ボードの初期化

MPLAB-XのMCCを使って、割り込みを使ったものづくりコンテスト対応のPIC18F45K22 CPUボードを初期化する手順を説明します。

タイマー割り込みとシリアル通信の設定

PICの機能のうちタイマー割り込みとシリアル通信機能の設定をおこないます。

何故割り込みを使うのか

プログラム初心者にとって割り込みはハードルが高い技術のように思えます。
 では、何故面倒に見える割り込みを使うのでしょうか。

組み込みプログラミングではタイマー割り込みの使用が基本

組み込みプログラムの世界で割り込みは必須のテクニックです。
 制御プログラムではタイミング管理が重要なのでタイマー割り込みを使った処理が基本となります。
 ものづくりコンテストでは簡単な課題は割り込みを使わないループ処理だけでプログラムを作れますし、複雑な課題でも割り込み無しでプログラムすることは可能です。

ループ処理とタイマー割り込みのどちらが有利?

ものづくりコンテストの課題を決められた時間内で解くのにループ処理と割り込みを使った場合のどちらが有利かを考えてみます。
 割り込みを使うための基礎知識は必要ですが、プログラム難易度は簡単な課題では同等で、複雑な課題になるほど割り込みを使うほうが素早く解けるようになります。
MPLAB-Xを使えばタイマー割り込みに関する初期化設定はmain関数に数行の追加が必要なだけなのでトータルで見ればタイマー割り込みを使った方が有利です。

また、ものづくりコンテストの主旨である「社会で認められる技術を身につける。」という点から見れば割り込みは是非習得したい技術です。

シリアル通信について

ものづくりコンテストではシリアル通信を使った課題は出題されていませんが、シリアル通信を有効にしてprintfが使えるようにしておくとプログラムのデバッグに役立つので初期化の中にシリアル通信の設定も含めておきます。
 

設定の手順

MCCを使った初期化設定の手順について説明します。

1・クロックの設定

左のProject Resourcesタブで System Moduleを選択してクロックの設定をおこないます。
右のSysitem Module設定でSoftware PLL Enableにチェックを入れてCurrent System Clock が64MHzになるようにします。

下の赤丸で囲まれた部分でPDIP40を選択してPIC18F45K22 CPUボードと同じパッケージが表示されるようにします。

2.シリアル通信の設定

左のDevice Resourcesで下図の赤丸で囲まれたEUSART2をダブルクリックして、上のProject Resourcesに追加します。
DeviceResourcesにはこのCPUで使える内蔵機能が列挙されていて、ダブルクリックして選択することでProject Resourecesに追加されて設定が出来るようになります。

表示されたEUSART2の設定画面で通信速度=115200、Enable Transmit等赤丸で囲まれた部分にチェックを入れて有効にします。
Ridirect STDIO to USARTにチェックを入れることでprintfの結果をシリアルポートを通じてPCのターミナルプログラムで表示できるようになります。

3.タイマー0割り込みの設定

EUSART2の場合と同様にDevice ResourcesでTMR0を選んでダブルクリックし、Project Resourcesに追加します。
Timer Periodに”10ms”を書き込み下のEnable Timer Interruptにチェックを入れると10ms毎に割り込み関数が呼ばれます。
Timer Periodで意図する時間が設定できない場合は緑丸で囲まれた部分の設定を変えるとより長い周期が選べるようになります。

4.タイマー1割り込みの設定

Device ResourcesでTMR1を選んでダブルクリックし、Project Resourcesに追加します。
Timer Periodに”100us”を書き込み下のEnable Timer Interruptにチェックを入れると100us毎(10000回/秒)に割り込み関数が呼ばれます。
実際の割り込み間隔が緑丸で囲まれた部分に表示されるので意図した周期の割り込みになっているかを確認しておきます。

5.入出力の設定

最後に入出力の設定をおこないます。
PinManager:GridViewタブで鍵のアイコンをクリックして入力と出力を設定します。鍵がロックして緑色になった部分が有効な設定となります。

6.初期化プログラムの生成

設定が終わったらProject ResoucesタブでGenerateボタンをクリックして初期化プログラムとmain.cを生成します。
プログラムを書いている途中で設定を変更したい場合も再度MCCを開いて設定を変更した後にGenerateボタンをクリックします。
main.cを編集している場合に再度MCCのGenarateをおこなっても、編集した部分はそのまま保存されます。

7.生成されたプログラムの確認

MCCで初期化プログラムを生成した後にProjectタブの内容を見るとmain.cとMCC Generated Filesが作られているのが確認できます。
生成されたファイルのmain.cを直接編集して課題のプログラムを書いていきます。
MCC Generated Filesフォルダにあるプログラムを編集することはありませんが、この中の関数を使う場合には関数名や使い方を確認するために開いてみることが出来ます。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)