PIC24F64GB002を使った基本であるLEDの点滅をやりたいと思います。
PIC12FやPIC16Fは今まで弄ってきたが、PIC24Fは今までまともに自分でソースを書いたことが無いため、基本のLチカから入って使い方を覚えたいと思います。
まず使用するコンパイラバージョンですがXC16「v1.24」以前を使用。何故かというと、PIC24Fで準備されているPeripheral Libraryを使用する前提でソースを書いたのだが、現時点で最新の「v1.25」にはPeripheral Libraryに必要なHeaderFileが同梱されていないためコンパイルエラーが出ます。これに気付かないで随分遠回りしました。
⊿1: Peripheral Librariesを個別でインストールすれば最新のコンパイラーでもコンパイルできました。
個別に Peripheral Librariesをインストールする方法はこちら
またPeripheral Libraryの詳しい説明はここら辺にインストールされます。
Microchip\xc16\v1.24\docs\periph_libs\Microchip PIC24F Peripheral Library.chm
便利な標準関数が用意されてるので周辺機能は割と使いやすそうです。
#define USE_AND_OR /**/ #define FCY 16000000UL /*delay関数用定義 Forc/2*/ #include<ports.h> /*ポートbit操作マクロの定義*/ #include<libpic30.h> /*delay関数用*/ int main(void) { AD1PCFG = 0xffff; /*全てのポートをデジタルI/O */ CLKDIV = 0x0000; /*クロック周波数 32MHz*/ mPORTBOutputConfig(IOPORT_BIT_15); /*PORTB RB15を出力設定*/ mPORTBWrite(0); /*PORTB Low出力*/ while (1) { mPORTBSetBits(IOPORT_BIT_15); __delay_us(500); mPORTBClearBits(IOPORT_BIT_15); __delay_us(500); } }
▲ソース
コンフィグレーション設定は割愛してます。MPALB X IDE 半自動で生成できます。
ポート操作とdelayを使用するためのヘッダーファイルをインクルードします。あとはマクロ使って記述するだけ。
デジタルポートのON/OFF、間にdelay入れて終了です。
コメント