はじめに

こちらのページでは、Microchip社の8bitマイコンの評価ボードであるCuriosity High Pin Count Development Board を用いてマイコンのプログラムを作成する方法を記載します。Microchpの開発環境には、コード自動生成ツールによってペリフェラルの初期化などがGUI上で簡単に行えますが、ここではハンドコードでのプログラムを作成します。

使用環境

評価ボード

評価ボードは左にあります、Curiosity High Pin Count Development Boardを使用します。(https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/DM164136)

使用マイコン

今回、使用するマイコンは8bitマイコンのPIC18F27Q10を使用し、パッケージはSPDIPの28ピンタイプを 

使用しています。

(https://www.microchip.com/wwwproducts/en/PIC18F27Q10

開発環境

開発環境はMPLAB® X IDEを使用し、コンパイラはMPLAB® XC8 Compilerを使用しています。

今回使用したそれぞれのVerは、MPLAB®  X IDEが5.40、MPLAB® XC8 Compilerが2.20を使用しています。

MPLAB® X IDE

https://www.microchip.com/mplab/mplab-x-ide

MPLAB® XC8 Compiler

https://www.microchip.com/mplab/compilers

プログラム概要

PIC18F27Q10のTimer0 Moduleを用いて評価ボードに搭載されているLEDを500ms間隔で点滅させるプログラムを作成します。Timer0 Moduleはカウントモードとして、8bitまたは16bitモードが選択できますが、今回は16bitモードを使用します。Timer0を使用して、10msごとに割り込みを発生させます。10msの割り込みを使用してLEDを500ms間隔で点灯、消灯を繰り返します。

Curiosity High Pin Count Development Board上のLEDは、左図のようにポートRA7が接続されており、ポートをHighにすることでLEDが点灯し、ポートをLowにすることでLEDが消灯します。

プロジェクトの作成

MPLAB® X IDEを使用してプロジェクトを作成します。

MPLAB® X IDEを立ち上げ、「File」メニュー → 「New Project」をクリックします。

 

New Projectボックスが立ち上がるので、「Microchip Embedded」→「Standalone Project」を選択 →「Next」をクリックします。

次にデバイスを選択します。「Device」部分に今回使用するマイコンである、「PIC18F27Q10」と打ち込み、「Next」をクリックします。

次にCompilerの選択をします。MPLAB® XC8 Compilerをインストールしている場合、画面上に「XC8(v2.20)」と表示されるので選択し「Next」をクリックします。

プロジェクトの保存場所とプロジェクト名を決めます。「Project Location」の「Browse」をクリックし、任意のプロジェクト格納場所を選択します。(ここではCドライブの下に「Lab」というフォルダーを作成し、ここをプロジェクト格納場所にしています。)

 

「Project Name」にプロジェクト名を入れます。(ここではLabとしています。)

 

「Encoding」を「Shift JIS」にすることによって、コメントなどに日本語が使用できます。「Finish」をクリックするとプロジェクトが作成されます。

メインプロジェクトの選択

MPLAB® X IDE上にプロジェクトが複数ある場合、どのプロジェクトで作業をおこなうかを選択する必要があります。作業するプロジェクトを選択するには、「Production」メニュー →「Set Main Project」→作業をするプロジェクト(今回はLab)を選択します。

 

MPLAB® X IDE上に他のプロジェクトが無い状態で、プロジェクト作成を行った場合は上記の操作は必要ありません。

Configuration Words

PICマイコンにはConfiguration Wordsというものがあります。これはマイコンの電源投入時に使用するオシレータなどの設定をすることができます。PIC18F27Q10では初期設定は外部オシレータを使用する設定となっていますが、Curiosity High Pin Count Development Boardには外部オシレータは搭載されておりませんので、内蔵オシレータを使用して動作させます。

 

そのため、Configuration Wordsの変更が必要となります。MPLAB® X IDEを使用することで、Configuration Wordsの変更が簡単におこなえます。Configuration Wordsの変更は、MPLAB® X IDEの「Productoin」メニュー →「Set Configuration Bits」→「Configuration Bigts」を選択します。

画面の下部分に「Configuration Bits」が表示されます。

今回の変更は、「FEXTOSC」、「RSTOSC」、「WDTE」を変更します。「Option」列のプルダウンメニューより、「FEXTOSC」を「OFF」、「RSTOSC」を「LFINTOSC」、「WDTE」を「OFF」にします。

 

この設定によって、電源投入時マイコンは内蔵低速オシレータで動作し、WDTが禁止された状態で動作を開始します。上記の設定が済みましたら、「Generate Source Code to Output」をクリックすることで、設定がコードとして表示されます。

 

表示されたコードをすべてコピーし、「ConfigurationBit.h」というファイルを作成しこのファイルにコピーしたコードを貼り付けます。

作成ファイル

今回作成したソースファイルとヘッダーファイルは下記になります。

・ソースファイル

 main.c   :メインプログラム

 SystemInit.c:初期化処理プログラム

 timer.c   :タイマ関係プログラム

 interrupt.c :割り込み処理プログラム

 

・ヘッダーファイル

 define.h     :定数などの宣言

 ConfigurationBit.h:Configuration bitの設定

 SystemInit.h    :SystemInit.cで使用される関数宣言

 timer.h      :timer.cで使用される関数宣言

 

これらのファイルは作成したプロジェクトフォルダー(Lab.xフォルダー)内に、「src」という新しいフォルダーを作成し、「src」フォルダー内に保存しています。

 

レジスター名などのヘッダーファイルは下記ヘッダーファイルを記述することで使用できますので、各ソースファイル内でincludeします。

#include <xc.h>

以下は各ソースファイルで行っている処理を簡単に示したものになります。

■main.c ファイル

■SystemInit.c ファイル

■timer.c ファイル

■interrupt.c ファイル

割り込み処理

割り込み処理は下記の関数を用意することで、ペリフェラルの割り込み状態になった場合、この関数に処理が渡されます。すべての割り込みがこの関数に入ってきますので、割り込みフラグ(PIRxレジスタ―)を確認し、対応する割り込みを確認します。

void __interrupt() Interrupt_routine( void )
{
}

プロジェクトへのソースコード追加

プログラムファイルが完成しましたので、プロジェクトに作成したソースファイルを追加していきます。

MPLAB® X IDE上で作成したプロジェクトの「Source File」を右クリックし「Add Existing Item」をクリックします。

保存したソースファイルがあるフォルダーを選択し、「interrupt.c」、「main.c」、「SystemInit.c」、「timer.c」を選択し「Select」をクリックします。

「Source Files」に選択したソースファイルが追加されたことを確認します。

ソースファイルのビルド

 

ソースファイルが追加できましたので、次にビルドをおこないます。

「Production」メニュー →「Build Main Project」をクリックするとビルドが開始されます。

C言語の構文エラーなどがない場合は、下図のように「BUILD SUCCESSFUL」が表示されビルドが完了します。

デバッグ

デバッグを開始したときに、main関数の最初の1行目で動作がStopするようにオプションを設定します。(この設定は1回おこなうと今後は保存されていますので、次からデバッグをおこなう場合は必要ありません。)

 

「Tools」メニュー →「Options」をクリックします。

「Options」ボックスが表示されるので、「Embedded」→「Generic Settings」タブの「Debug Reset@(Following reset action during paused debug session)」を「Main」、「Debug Startup(Following debug project action)を「Halt at Main」にし「OK」をクリックします。

 

次にデバッグをおこないます。

最初にデバッガの選択をおこないます。今回使用します、Curiosity High Pin Count Development Boardにはオンボードデバッガーが搭載されておりますので、パソコンとCuriosity High Pin Count Development BoardをUSBで接続するだけでデバッグができます。

 

パソコンとCuriosity High Pin Count Development BoardをUSBで接続します。

デバッガーの選択は、MPLAB® X IDEで作成したプロジェクト「Lab」を右クリックして、一番下の「Properties」をクリックします。

「Project Properties」ボックスが立ち上がりますので、「Categories」欄から「Conf:[default]」を選択し、「Connected Hardware Tool」のプルダウンメニューから「Starter Kits(PKOB)-XXX」を選択し、「OK」をクリックします。

デバッグを開始するには、「Debug」メニュー →「Debug Main Project」をクリックします。

デバッグ開始位置が、main関数の1行目となりプログラムがStopします。

「Debug」メニュー →「Continue」をクリックするとプログラムが動作し、LEDが500msで点滅を繰り返します。

今回使用しましたプロジェクトは以下よりダウンロード可能です。

注意事項

このページに記載している内容及びダウンロードできるプロジェクトに関して、正確な記述に努めておりますが、内容に対して何らかの保証をするものではありません。

開発ツールやコンパイラのバージョンによって、操作が異なる場合もあります。

プロジェクトファイルダウンロードはこちら

お問い合わせ

本記事に関してご質問などがありましたら、以下よりお問い合わせください。

Microchipメーカー情報Topへ

Microchipメーカー情報Topページに戻りたい方は、以下をクリックしてください。