PICキット スタートマニュアル6
デジタルI/O制御の基本プログラミング その2
FullColorLEDを制御してみる(XC8)編
システム設計は前回と全く同じで、XC8でのプログラミングです
ASMとCではプロジェクトそのものから分けますので、ほぼ同じ名前で進行していきます
プロジェクト名は「PIC_START_CPRG01」とでもしておきます
ASMとCではプロジェクトそのものから分けますので、ほぼ同じ名前で進行していきます
プロジェクト名は「PIC_START_CPRG01」とでもしておきます
1.MPLAB X IDE(Ver3.51) 起動
(1)XC8用プロジェクトの作成
「スタートマニュアル2」を参考にXC8用新規プロジェクトを作成します
プロジェクト名は説明の都合上「PIC_START_CPRG01」
すると、「MPLABXProjects」フォルダに「PIC_START_CPRG01.X」が生成されます。
当局の場合は、「MPLABXProjects」フォルダ内の「PIC_BASIC」フォルダ内の「PIC_START」フォルダ内に生成されています
生成直後は「PIC_START_CPRG01」プロジェクトをオープンしている状態です。
(1)XC8用プロジェクトの作成
「スタートマニュアル2」を参考にXC8用新規プロジェクトを作成します
プロジェクト名は説明の都合上「PIC_START_CPRG01」
すると、「MPLABXProjects」フォルダに「PIC_START_CPRG01.X」が生成されます。
当局の場合は、「MPLABXProjects」フォルダ内の「PIC_BASIC」フォルダ内の「PIC_START」フォルダ内に生成されています
生成直後は「PIC_START_CPRG01」プロジェクトをオープンしている状態です。
(画像01) 新規プロジェクトオープンした状態
XC8新規ソースファイルの作成
0)「PICKIT_START_CPRG01」プロジェクトをオープンします。
(1)からそのまま来た場合は、すでにプロジェクトオープンしています。
1)左上コマンドバーの「File」の「New File」をクリック、すると「New Project」ウインドウが開く
XC8新規ソースファイルの作成
0)「PICKIT_START_CPRG01」プロジェクトをオープンします。
(1)からそのまま来た場合は、すでにプロジェクトオープンしています。
1)左上コマンドバーの「File」の「New File」をクリック、すると「New Project」ウインドウが開く
(画像02)
左上コマンドバーの「File」の「New File」をクリック、すると「New Project」ウインドウが開く
①Step1 Choose File Type
Projectでは、「PIC_START_CPRG01」を選択
Categoriesでは、「C」をクリック
File Typeでは、「C Source File.c」をクリック
「Next」をクリック
左上コマンドバーの「File」の「New File」をクリック、すると「New Project」ウインドウが開く
①Step1 Choose File Type
Projectでは、「PIC_START_CPRG01」を選択
Categoriesでは、「C」をクリック
File Typeでは、「C Source File.c」をクリック
「Next」をクリック
(画像03)
②Step2 Name and Location
File Nameでは、「PIC_START_CPRG01」とでもします。
(実際は好きなソースファイル名でOK)
Extensionは「c」です
「Next」をクリック
②Step2 Name and Location
File Nameでは、「PIC_START_CPRG01」とでもします。
(実際は好きなソースファイル名でOK)
Extensionは「c」です
「Next」をクリック
(画像04)
これで、「PIC_START_CPRG01」フォルダに
「PIC_START_CPRG01.c」が生成されました。
何も書かれていないソースファイルもオープンされていると思います。
「Projects」の「Source Files」に「PIC_START_CPRG01.c」を登録
これで、「PIC_START_CPRG01」フォルダに
「PIC_START_CPRG01.c」が生成されました。
何も書かれていないソースファイルもオープンされていると思います。
「Projects」の「Source Files」に「PIC_START_CPRG01.c」を登録
(画像07) コンフィギュレーション ワードを表示・設定
①ツールバー「Window」をクリック
②「PIC Memory Views」をポイント
③「Configuration Bits」をクリック
これで、右下の「Output」ウインドウに「Configuration Bits」が表示される
ここでコンフィギュレーションワードの設定を行う
①ツールバー「Window」をクリック
②「PIC Memory Views」をポイント
③「Configuration Bits」をクリック
これで、右下の「Output」ウインドウに「Configuration Bits」が表示される
ここでコンフィギュレーションワードの設定を行う
(画像08) 設定疑似命令を自動生成
ウインドウ下部の「Generate Source Code Output」をクリック
すると、画像の様にコンフィギュレーションワード設定の命令が生成される
これをコピペします
ウインドウ下部の「Generate Source Code Output」をクリック
すると、画像の様にコンフィギュレーションワード設定の命令が生成される
これをコピペします
(画像10) 各種定義
設計に基づき、広域変数の定義を行います
次に定数の定義を行います
ここではCPUの速度を記述、これが無いとウエイト文が使えません
実際は後での追加記述なのですが、関数プロトタイピングも記述
設計に基づき、広域変数の定義を行います
次に定数の定義を行います
ここではCPUの速度を記述、これが無いとウエイト文が使えません
実際は後での追加記述なのですが、関数プロトタイピングも記述
(画像15) 割込み処理関数(ISR)①
タイトルおよび関数宣言
関数名の前に「interrupt」を付与すると、その関数はISRとなるようだ
さらに、関数プロトタイピングは書かなくても、動作する
プロトタイピングとして書いてみても問題無いようだが。
タイトルおよび関数宣言
関数名の前に「interrupt」を付与すると、その関数はISRとなるようだ
さらに、関数プロトタイピングは書かなくても、動作する
プロトタイピングとして書いてみても問題無いようだが。
(画像22) 発色データ生成関数④
入力値192~255までの処理
この関数はRGB用各8bitデータを32bit整数に纏めて返します。
受け取った呼び出した側はその32bit整数から8bitデータに分解して使います
入力値192~255までの処理
この関数はRGB用各8bitデータを32bit整数に纏めて返します。
受け取った呼び出した側はその32bit整数から8bitデータに分解して使います
左記に今回のソースファイルがあります
LEDは割とスムーズに変色し、見ていて、さほど疲れないと思います。
ソースファイルもCソースの方が何をしているのかが解り易いと思われます。
コンパイラがどんなコードを吐き出しているのか解りませんが、プログラムメモリの使用率が7%と表示されています。
LEDは割とスムーズに変色し、見ていて、さほど疲れないと思います。
ソースファイルもCソースの方が何をしているのかが解り易いと思われます。
コンパイラがどんなコードを吐き出しているのか解りませんが、プログラムメモリの使用率が7%と表示されています。