ぷらこのきろく

メモとかテストとか備忘録とか

ASOOVU USBで遊んでみる(4)

その(4) :コード書いてコンパイル・書き込み・実行

コード確認

コードはこれだけ
f:id:prizeout:20171217162443p:plain
とりあえずメモ

9行目

ヘッダファイルインクルード。こないだの日記でコンフィグレーションビットの設定を出力したコピーペースト。中でxc.hをインクルードしている。

14~15行目

PORTBとLATBを0クリア。
前の日記の初期化例で調べたのをそのまま。

16行目

TRISBを0に設定。つまり、RB0~RB7を全部出力に設定。

18行目

while(1)で回す。組込み関係ではプログラムは終了しないのが常道らしい。つまりmain()関数のreturnはしない。

19行目

500ms待つ。これはXC(コンパイラ)が提供するマクロみたい。
xc.hから読み込まれるpic.hに*1

// NOTE: To use the macros below, YOU must have previously defined _XTAL_FREQ
#define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))

って書いてある。
で、10行目で_XTAL_FREQを設定。設定する数は、マイコンの周波数。ASOOVU USBのマニュアルに製品仕様が書いてあって
内部動作周波数:48MHzと書いてある。ということで48000000を設定。
・・・あ、#defineの値を括弧でくくるの忘れてた。

20~25行目

LATB4をON/OFFする。僕はif~elseで書くけど多分別に~のビット反転使ってもいいと思う。たぶん。
LATBbits構造体や、先ほどでてきたPORTBやLATB、TRISBのレジスタなどはpic18f2550.hで定義されてる。

コンパイル

で、コンパイル
MPLAB X IDEのプロジェクト名を右クリックして、Buildを選択。
コンパイル結果はOutput欄に出力。
f:id:prizeout:20171217170238p:plain
BUILD SUCCESSFULLでビルド成功を確認。
次に、hexファイル(デバイスに書き込むためのファイル)の場所を確認。

書き込み

HIDBootLoader.exeを起動。「Hexファイル読み込み」で、先ほどできたhexファイルを読み込む。
ASOOVU USBのマニュアルに従って、デバイスのジャンパーピンをBOOT側に設定し、USBケーブルでPCにつなぐ。うまくいくとLEDが赤青にちかちかする。
そして「Hexファイル書き込み」。うまくいけば書き込み成功のメッセージが出る。

実行

バイスをPCから外し、ジャンパーピンをBOOT側からもう一方へ設定する。もう一度USBケーブルに接続する。
実行結果の動画(youtube)
めでたしめでたし

*1:XCのヘッダファイル群はインストールされたディレクトリ、デフォルトでは"C:\Program Files (x86)\Microchip\xc8\v1.44\include"にある