PIC16F1789 & MPUトレーナー 2 / フレームワークを作成する

参考: 定番!ARMキット&PIC用Cプログラムでいきなりマイコン制御[DVD-ROM付き] (マイコン活用シリーズ), pp.28-36

以降共通して使用するためのフレームワークを作成する。

1. MPLAB X IDE を起動し、メニューバーから [File] > [New Project] の順に選択する。
f:id:ti-nspire:20170226051843p:plain:h200

2. [New Project] ウィンドウが開くので、[Categories] ペインの [Microchip Embedded] を選択し、[Projects] ペインの [Standalone Project] を選択し、[Next] をクリックする。
f:id:ti-nspire:20170226052244p:plain:h200

3. [Device] ドロップダウンボックスで [PIC16F1798] を選択してから [Next] をクリックする。
f:id:ti-nspire:20170226052546p:plain:h200

4. [Supported Debug Header] は [None] のまま [Next] をクリックする。
f:id:ti-nspire:20170226052733p:plain:h200

5. [PICkit3] を選択して [Next] をクリックする。
f:id:ti-nspire:20170226052852p:plain:h200

6. [XC8 (v1.41) ~] を選択して [Next] をクリックする。
f:id:ti-nspire:20170226053014p:plain:h200

7. [Project Name] フィールドに「framework」と入力する。必要なら [Project Location] も変更する。[Encoding] ドロップダウンボックスから [Shif-JIS] を選択する。[Finish]をクリックする。
f:id:ti-nspire:20170226053830p:plain:h200

8. メニューバーから [Tools] > [Embedded] > [MPLABⓇ Code Configurator v3: Open/Close] の順に選択する。
f:id:ti-nspire:20170226054027p:plain

9. [Package] ドロップダウンボックスから [PDIP40] を選択する。
f:id:ti-nspire:20170226054707p:plain:h200

10. 左側にある [Device Resources] ペインで [ADC] [CCP1] [EUSART] [MSSP] [TMR0] [TMR1] [TMR2] の 7 つのペリフェラルをそれぞれダブルクリックする。
f:id:ti-nspire:20170226055622p:plain:h200

11. すると、今選択した 7 つのペリフェラルが、左側にある [Project Resources] ペインに追加される。
f:id:ti-nspire:20170226055932p:plain:h200

12. System を下のように設定する。
f:id:ti-nspire:20170226060843p:plainf:id:ti-nspire:20170226060942p:plain

13. ADC を下のように設定する。
下の図の 2 つの鍵マークをクリックしてアンロック状態 (f:id:ti-nspire:20170226061622p:plain:h15) からロック状態 (f:id:ti-nspire:20170226061640p:plain:h15) にする。
f:id:ti-nspire:20170226061450p:plain:h100
すると 右上の図が下のようになる。
f:id:ti-nspire:20170226061806p:plain:h200
さらに下のように設定する。
f:id:ti-nspire:20170226062133p:plain

14. EUSART を下のように設定する。
f:id:ti-nspire:20170226062646p:plain
TX ピン、RX ピンが自動的に割り当てられる。
f:id:ti-nspire:20170226062752p:plain:h200

15. MSSP を下のように設定する。
f:id:ti-nspire:20170226063019p:plain

16. Timer1 を下のように設定する。
f:id:ti-nspire:20170226063355p:plain

17. Timer0 を下のように設定する。
f:id:ti-nspire:20170226063958p:plain

18. PWM を設定する。
f:id:ti-nspire:20170226064153p:plain

19. GPIO を下のように設定する。
f:id:ti-nspire:20170226070134p:plain
ピンアサインは最終的に下のようになる。
f:id:ti-nspire:20170226070203p:plain:h200

20. [Generate] ボタンを押してソースコードを生成する。
f:id:ti-nspire:20170226070308p:plain:h150

PIC16F1789 & MPUトレーナー 1 / 開発環境を整える

参考: 定番!ARMキット&PIC用Cプログラムでいきなりマイコン制御[DVD-ROM付き] (マイコン活用シリーズ), pp.19-20

下の手順に従って、「統合開発環境 MPLAB X IDE」「C コンパイラ XC8」「コンフィグレーション用ツール MPLAB Code Configurator」の順にインストールする。

1. MPLAB X IDE | Microchip Technology に移動し、Windows (x86/x64) 用の MPLAB® X IDE v3.55 をダウンロードする。
f:id:ti-nspire:20170226043334p:plain:h100

2. ダウンロードした MPLABX-v3.55-windows-installer.exe をダブルクリックしてインストールする。

3. 下の画面が表示されたら一番上のチェックボックスだけオンにして [Finish] をクリックする。
f:id:ti-nspire:20170226044856p:plain:h150

4. MPLAB- XC Compilers | Microchip Technology が開くので Windows (x86/x64) 用の MPLAB® XC8 Compiler v1.41 をダウンロードする。
f:id:ti-nspire:20170226045303p:plain:h100

5. ダウンロードした xc8-v1.41-full-install-windows-installer.exe をダブルクリックしてインストールする。

6. XC8 のインストールが済んだら MPLAB X IDE v3.55 を起動する。

7. メニューバーから [Tools] > [Plugins] の順に選択し、[MPLAB Code Configurator] を選択してインストールする。
f:id:ti-nspire:20170226050758p:plain:h100

TI-Nspire & Lua / スクリプティングのヒント / 自作の描画函数も出来合いの描画函数と同じように実行できるようにする

参考: http://adriweb.free.fr/t3/2013/Powerpoint_Advanced_TI-Nspire_Lua_Programming.pptx, p.25

--[[普通の方法
function drawCircle(centerX, centerY, radius, gc) -- 中心座標で円を描くための自作函数
   local diameter = radius + radius
   gc:drawArc(centerX - radius, centerY - radius, diameter, diameter, 0, 360)
end
function fillCircle(centerX, centerY, radius, gc) -- 中心座標で円を塗りつぶすための自作函数
   local diameter = radius + radius
   gc:fillArc(centerX - radius, centerY - radius, diameter, diameter, 0, 360)
end

function on.paint(gc) -- 出来合いの描画函数と実行方法が揃わない。
   drawCircle(10,10,10,gc)
   fillCircle(50,50,10,gc)
   gc:drawRect(20,20,20,20)
   gc:fillRect(120,120,20,20)
end
--]]

---[[特殊な方法
function drawCircle(gc, centerX, centerY, radius) -- 中心座標で円を描くための自作函数
   local diameter = radius + radius
   gc:drawArc(centerX - radius, centerY - radius, diameter, diameter, 0, 360)
end
function fillCircle(gc, centerX, centerY, radius) -- 中心座標で円を塗りつぶすための自作函数
   local diameter = radius + radius
   gc:fillArc(centerX - radius, centerY - radius, diameter, diameter, 0, 360)
end

platform.withGC(getmetatable)["drawCircle"] = drawCircle
platform.withGC(getmetatable)["fillCircle"] = fillCircle

function on.paint(gc) -- 出来合いの描画函数と同じように実行できる。
   gc:drawCircle(10,10,10)
   gc:fillCircle(50,50,10)
   gc:drawRect(20,20,20,20)
   gc:fillRect(120,120,20,20)
end
--]]

--[[だから自作描画函数は最初から次のように定義しておけば見づらくとも手間が省ける。
platform.withGC(getmetatable)["drawCircle"] = function(gc, centerX, centerY, radius)
                                                 local diameter = radius + radius
                                                 gc:drawArc(centerX - radius, centerY - radius, diameter, diameter, 0, 360)
                                              end
platform.withGC(getmetatable)["fillCircle"] = function(gc, centerX, centerY, radius)
                                                 local diameter = radius + radius
                                                 gc:fillArc(centerX - radius, centerY - radius, diameter, diameter, 0, 360)
                                              end
--]]

f:id:ti-nspire:20170224120718p:plain:h315