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が押された時の処理関数を指定