前回から時間がかかってすみません![]()
さあ、続き行きましょー
前回のお話で、LEDを点滅させるためのプロジェクトまでできましたので、今回はソースコードを入力してコンパイル(ビルド)しちゃいましょうね![]()
まずはヘッダファイルの入力からですよー![]()
プロジェクトが表示されている、画面の右上にあるHeaderFilesを右クリックして
New-C Header File...を選択すると以下の画面が表示されます
ここでも、話をわかりやくするため、ファイル名には"led_test001_pic24f”と入力してくださいね![]()
これで、空のヘッダファイルが登録されますので、以下の内容を入力してください。もし、読者の皆さんが最短で勉強したいのであれば、コピペでなく手で入力してください。その方が早くおぼえますよ![]()
##include "p24FJ64GA002.h"
#include <stdio.h>
_CONFIG1( JTAGEN_OFF &
GCP_OFF &
GWRP_OFF &
BKBUG_OFF &
COE_OFF &
ICS_PGx1 &
FWDTEN_OFF
)
_CONFIG2( POSCMOD_NONE &
OSCIOFNC_OFF &
FNOSC_FRCPLL &
FNOSC_FRCDIV &
FCKSM_CSDCMD &
IOL1WAY_OFF &
I2C1SEL_PRI &
IESO_ON
)
さあ、今度はソースコードの作成です。ヘッダファイルと同じように、Source Filesを右クリックして、"led_test001”と入力してくださいね![]()
でで、ソースコードの入力ですよー、抜かりなくお願いしますねー
本来ならソースコードにはコメントを書くのですが、HTMLに変換されるカラムがガタガタになるのであえて省いてあります。コード意味は、別途説明しますね![]()
#include "led_test001_pic24f.h"
#define LED_OFF (0x01)
#define LED_ON (0x00)
#define INT_100MS (24499)
#define INTVL_1S ((1000 / (100 * 2)) - 1)
int cnt_down_time;
int main(void)
{
TRISB = 0x0000;
CLKDIV = 0;
T1CON = 0b1000000000100000;
PR1 = INT_100MS;
IEC0bits.T1IE = 1;
LATBbits.LATB6 = LED_ON;
cnt_down_time = INTVL_1S;
while(1) {
;
}
return 0;
}
void __attribute__((interrupt, no_auto_psv)) _T1Interrupt(void){
IFS0bits.T1IF = 0;
if (!cnt_down_time--) {
LATBbits.LATB6 = !LATBbits.LATB6;
cnt_down_time = INTVL_1S;
}
}
※すみません、HTML化した時にTABが変になっていますね ![]()
MATLAB Xに入力する時は、TABは4でお願いします
さあ、いよいよ、コンパイルですよー
MATLAB Xのアイコン一覧にあるトンカチマーク
のボタンをポチっと押してくださいね。
画面の下に“BUILD SUCCESSFUL (total time ・・・)”とでたら成功ですよ![]()
エラーがでたら入力ミスがないか確認してみてくださいな
いよいよ実行です ![]()
基板にPicKit3を接続してくださいね。あっ、慌てないで![]()
PicKit3の▼マークが基板の1番ピンにあっているか確認を忘れずにね
次に、基板を動かすための電源をPicKit3から供給できるように設定しましょうね
画面右上の”led_test001”を右クリックして、"Properties”をクリックして、Pickit3を選択します
次に"Option Categories”から"Power”選択し、”Power terget circuit from PICKit3”をチェックします。
これでOKです、それでは、ビルドしてプログラムをPIC24Fに書き込んでみましょうね。
画面下に"Programming/Verify complete”が表示されたら、ビルドとプログラム転送および実行が完了しました。
どうですか?
LEDが1秒間で一回点滅していますか![]()
次回は「なぜ、LEDが1秒間に一回点滅しているか?」について、プログラムの意味を説明しますねー![]()



