ASOOVU USBで遊んでみる(4)
その(4) :コード書いてコンパイル・書き込み・実行
コード確認
コードはこれだけ
とりあえずメモ
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欄に出力。
BUILD SUCCESSFULLでビルド成功を確認。
次に、hexファイル(デバイスに書き込むためのファイル)の場所を確認。
書き込み
HIDBootLoader.exeを起動。「Hexファイル読み込み」で、先ほどできたhexファイルを読み込む。
ASOOVU USBのマニュアルに従って、デバイスのジャンパーピンをBOOT側に設定し、USBケーブルでPCにつなぐ。うまくいくとLEDが赤青にちかちかする。
そして「Hexファイル書き込み」。うまくいけば書き込み成功のメッセージが出る。
実行
デバイスをPCから外し、ジャンパーピンをBOOT側からもう一方へ設定する。もう一度USBケーブルに接続する。
実行結果の動画(youtube)
めでたしめでたし