---
---
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遅延
}
}