LEDと押しボタンスイッチ


LED (発光ダイオード)

 8個あるLEDのうち、LED1〜LED7の7個を制御できるようになっています。 以下の関数を使用します。

void OffLED(int led);		// led番目のLEDを消灯
void OffAllLED(void);		// 全てのLEDを消灯
void OnLED(int led);		// led番目のLEDを点灯
void OnAllLED(void);		// 全てのLEDを点灯
void InitLED(void);		// LEDを初期化

押しボタンスイッチ

 4個ある押しボタンスイッチ (Push Button switch, PB) のうち、 PB1とPB2の2個を使用して、DSPに割込みをかけることができます。 割込みがかかると、予め指定した関数が実行されます。 押しボタンスイッチを押した時に実行される関数は、 main.cの関数main()で指定しています。 該当部分は、

    // Push button interrupts for volume control
    // You can use these interrupts for your own functions
    interrupt (SIG_IRQ0, Irq0ISR) ;
    interrupt (SIG_IRQ1, Irq1ISR) ;
となっています。 実際に実行される関数は、
void Irq0ISR(int i);
という形式で宣言します。

プログラミング例

 例として、押しボタンスイッチを押すとLEDが点滅するプログラムを示します。

// LEDの状態を保持する変数
int LED3 = 0;
int LED4 = 0;

// PB1が押された時の処理関数を定義
void PB1ISR(int i)
{
    if (LED3 == 0) {
        LED3 = 1;
        OnLED(3);
    }
    else {
        LED3 = 0;
        OffLED(3);
    }
}

// PB2が押された時の処理関数を定義
void PB2ISR(int i)
{
    if (LED4 == 0) {
        LED4 = 1;
        OnLED(4);
    }
    else {
        LED4 = 0;
        OffLED(4);
    }
}

void main(void){
    // 省略

    // You can use these interrupts for your own functions
    interrupt (SIG_IRQ0, PB2ISR);	// PB2が押された時の処理関数を指定
    interrupt (SIG_IRQ1, PB1ISR);	// PB1が押された時の処理関数を指定


[上へ] [戻る 制限事項と拡張機能] [目次] [次へ DIPスイッチ]