dsPIC33Fの基本動作から応用プログラムまでを学びます。

ホーム
16F18313
16F18325
16F18346
16F1619
Curiosity
---
---
    
12F1822
16F1455
16F1459
18F14K50
18F26J50
dsPIC
その他
Starter Kit for dsPIC の SW と LED の動作を確認する

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