チーム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