---
---
dsPIC Starter Kit には、Push SW が2ヶと LED が3ヶ組み込まれています。 まず、このkitに慣れるためにも、これらが思い通りに動作することを確認します。 作成したプログラムは、
という基本的なものです。これで、MPLABとの接続やdsPICプログラミングの基本を確認できます。
プロジェクトファイル dsP01LED.zip |
//********************************************************** // LED を遅延サブルーチンを使用して点滅させる //********************************************************** // 動作スピードの定義(遅延で使用する)--------------------- #define FCY 3685000UL // 7.37MHz / 2 #include <p33Fxxxx.h> #include <libpic30.h> // 遅延ライブラリ // LEDの定義 ---------------------------------------------- #define AMB_LED_TRIS _TRISC13 #define GRN_LED_TRIS _TRISC14 #define RED_LED_TRIS _TRISC15 #define AMB_LED _LATC13 #define GRN_LED _LATC14 #define RED_LED _LATC15 #define LED_ON 0 #define LED_OFF 1 // SWの定義 ---------------------------------------------- #define S1_TRIS _TRISD8 #define S2_TRIS _TRISD9 #define S1 _RD8 #define S2 _RD9 // コンフィギュレーション ----- 内部クロック動作 ------- _FGS(GWRP_OFF & GCP_OFF); _FOSCSEL(FNOSC_FRC); _FOSC(FCKSM_CSECMD & OSCIOFNC_ON & POSCMD_NONE); _FWDT(FWDTEN_OFF); int main (void){ RED_LED_TRIS = 0; // LED Portを出力設定 GRN_LED_TRIS = 0; // AMB_LED_TRIS = 0; // S1_TRIS = 1; // SW Portを入力設定 S2_TRIS = 1; // while(1){ if(!S1)RED_LED = LED_ON; // S1 ON ならRED_LEDをON if(!S2)AMB_LED = LED_ON; // S2 ON ならAMB_LEDをON GRN_LED = LED_ON; // GRN_LEDをON __delay_ms(200); // 200mS遅延 RED_LED = LED_OFF; // すべてのLEDをOFF AMB_LED = LED_OFF; // GRN_LED = LED_OFF; // __delay_ms(200); // 200mS遅延 } }