チーム1762

課題名

プラネタリウム

研究者名

kenta igarasi
ryohei kato

使用器具

PSoC基盤
Miniprog
スピーカー
ジャンパー線

概要

キラキラ星を演奏した。
演奏に合わせて歌詞を表示した。
また、LEDも光るようにした。

ソースコード

#include <m8c.h> // part specific constants and macros
#include "PSoCAPI.h" // PSoC API definitions for all User Modules
#pragma interrupt_handler myISR

int PW = 125; // Pulse Width
int SILENT = 0, D = 229, L = 204, M = 182, F = 172, S = 153, R = 136, C = 121, DD = 115;
int TC = 0; //Time Count


void myISR(void)
{
TC++;

PWM16_1_WritePulseWidth(PW);

if(TC == 1){
        LCD_1_Init();
      LCD_1_PrCString("Twinkle,twinkle");
      LCD_1_Position(1, 0);
      LCD_1_PrCString("little star!");
      PWM16_1_WritePeriod(D);
      }

  else if(TC == 5){
      PWM16_1_WritePeriod(SILENT);
      }
  
  else if(TC == 6){
      PWM16_1_WritePeriod(D);
  }
     
  else if(TC == 10){
      PWM16_1_WritePeriod(SILENT);
  }

else if(TC == 11){
      PWM16_1_WritePeriod(S);
  }
 
  else if(TC == 15){
      PWM16_1_WritePeriod(SILENT);
  }

else if(TC == 16){
      PWM16_1_WritePeriod(S);
  }
         
  else if(TC == 20){
      PWM16_1_WritePeriod(SILENT);
  }

else if(TC == 21){
      LCD_1_Init();
      LCD_1_Position(0,0);
      LCD_1_PrCString("little star!");
      LCD_1_Position(1,0);
      LCD_1_PrCString("How I wonder");
      PWM16_1_WritePeriod(R);
  }
     
  else if(TC == 25){
      PWM16_1_WritePeriod(SILENT);
  }

  else if(TC == 26){
      PWM16_1_WritePeriod(R);
  }
     
  else if(TC == 30){
      PWM16_1_WritePeriod(SILENT);
  }
    
  else if(TC == 31){
      PWM16_1_WritePeriod(S);
  }
     
  else if(TC == 39){
      PWM16_1_WritePeriod(SILENT);
  }
    
  else if(TC == 40){
      LCD_1_Init();
      LCD_1_Position(0,0);
      LCD_1_PrCString("How I wonder");
      LCD_1_Position(1,0);
      LCD_1_PrCString("What you are!");
      PWM16_1_WritePeriod(F);
  }
     
  else if(TC == 44){
      PWM16_1_WritePeriod(SILENT);
  }
    
  else if(TC == 45){
      PWM16_1_WritePeriod(F);
  }
     
  else if(TC == 49){
      PWM16_1_WritePeriod(SILENT);
  }
    
  else if(TC == 50){
      PWM16_1_WritePeriod(M);
  }
     
  else if(TC == 54){
      PWM16_1_WritePeriod(SILENT);
  }
    
  else if(TC == 55){
      PWM16_1_WritePeriod(M);
  }
             
  else if(TC == 59){
      PWM16_1_WritePeriod(SILENT);
  }

else if(TC == 60){
      LCD_1_Init();
      LCD_1_Position(0,0);
      LCD_1_PrCString("What you are!");
      PWM16_1_WritePeriod(L);
  }
         
  else if(TC == 64){
      PWM16_1_WritePeriod(SILENT);
  }

else if(TC == 65){
      PWM16_1_WritePeriod(L);
  }
         
  else if(TC == 69){
      PWM16_1_WritePeriod(SILENT);
  }

else if(TC == 70){
      PWM16_1_WritePeriod(D);
     }
         
  else if(TC == 78){
      LCD_1_Init();
      LCD_1_PrCString("     ~Fin~");
      PWM16_1_WritePeriod(SILENT);
  }

}
void main(void)
{
PGA_1_Start(PGA_1_HIGHPOWER);
  PWM8_1_Start();
  PWM8_2_Start();
  BPF2_1_Start(BPF2_1_HIGHPOWER);
M8C_EnableGInt;
PWM16_1_Start();
Timer16_1_EnableInt();
Timer16_1_Start();

while(1)
{};
}

考察

チーム1533を参考にして作成した。
キラキラ星を演奏して歌詞を表示するだけでなくLEDも点灯させようと考えた。
改良点としてはボタンなどを用いて演奏を一時停止を可能にすることや、LEDの光リ方を演奏に合わせて変えるといったことがあげられる。

  • 最終更新:2018-05-08 17:12:00

このWIKIを編集するにはパスワード入力が必要です

認証パスワード