チーム2015

課題名

SUPER MUSIC PLAYER

研究者名

加藤恵人
WENG JUNYAN

概要

キーを入力をすると、入力に対応して音楽が流れる。
LCDには曲名や再生時間の経過が表示される。
曲名:
    a:Canon in D
       b:Lemon(未完成)
       c:きらきら星(未完成)
    d:カエルの歌(未完成)
    e:千本桜(未完成)
    s:change song

画像

WeChat Image_20200602145754.jpgWeChat Image_20200602151313.jpgWeChat Image_20200602152248.jpg

ソースコード

#include <m8c.h> // part specific constants and macros
#include <stdlib.h>
#include "PSoCAPI.h" // PSoC API definitions for all User Modules
#pragma interrupt_handler myISR
#define SW0b00010000
int PW=125;             // Pulse Width
int SILENT=0,c=243,D=217,L=193,M=182,F=162,S=145,Ra=136,R=129,C=121;
int DD=108,LL=96,MM=91,FF=81,SS=72,RRa=68,RR=64,CC=61;
int n=0;int k=0;
int TC=0; //Time Count
  char p[9]; 
void myISR(void)
{
  if (n==1){
   TC += 1; //TC = TC +1
   LCD_1_Start();
   LCD_1_Position(0,0);
   LCD_1_PrCString("Name:Canon in D");
   LCD_1_Position(1,0);
if (TC %6==0)
       k++;
   if (k<10) {
       csprintf(p,"%d",k);    
   LCD_1_PrCString("0:0");    
   LCD_1_PrString(p);
   LCD_1_PrCString("/2:13");    
   }
   if (k<60&&k>=10) {
   csprintf(p,"%d",k);    
   LCD_1_PrCString("0:");    
   LCD_1_PrString(p);
       LCD_1_PrCString("/2:13");
   }
   if (k>=60&&k<70) {
   csprintf(p,"%d",k-60);
   LCD_1_PrCString("1:0");
   LCD_1_PrString(p);
       LCD_1_PrCString("/2:13");
   }
   if (k>=70&&k<120) {
   csprintf(p,"%d",k-60);
   LCD_1_PrCString("1:");
   LCD_1_PrString(p);
       LCD_1_PrCString("/2:13");
   }
   if (k>=120&&k<130) {
   csprintf(p,"%d",k-120);
   LCD_1_PrCString("2:0");
   LCD_1_PrString(p);
       LCD_1_PrCString("/2:13");
   }
   if (k>=130&&k<=133) {
   csprintf(p,"%d",k-120);
   LCD_1_PrCString("2:");
   LCD_1_PrString(p);
       LCD_1_PrCString("/2:13");
   }
PWM16_1_WritePulseWidth(PW);
if(TC == 1)
PWM16_1_WritePeriod(LL);
else if(TC == 9)
PWM16_1_WritePeriod(DD);
else if (TC == 17)
PWM16_1_WritePeriod(C);
else if(TC == 25)
PWM16_1_WritePeriod(R);
else if(TC == 33)
PWM16_1_WritePeriod(S);
else if (TC == 41)
PWM16_1_WritePeriod(F);
else if(TC == 49)
PWM16_1_WritePeriod(S);
else if(TC == 57)
PWM16_1_WritePeriod(R);
else if (TC == 65)
PWM16_1_WritePeriod(SILENT);
else if (TC == 66)
PWM16_1_WritePeriod(C);
else if(TC == 74)
PWM16_1_WritePeriod(R);
else if (TC == 82)
PWM16_1_WritePeriod(S);
else if(TC == 90)
PWM16_1_WritePeriod(F);
else if(TC == 98)
PWM16_1_WritePeriod(M);
else if (TC == 106)
PWM16_1_WritePeriod(L);
else if(TC == 114)
PWM16_1_WritePeriod(M);
else if(TC == 122)
PWM16_1_WritePeriod(D);
else if (TC == 130)
PWM16_1_WritePeriod(SILENT);
else if (TC == 131)
PWM16_1_WritePeriod(LL);
else if(TC == 139)
PWM16_1_WritePeriod(DD);
else if (TC == 147)
PWM16_1_WritePeriod(C);
else if(TC == 155)
PWM16_1_WritePeriod(R);
else if(TC == 163)
PWM16_1_WritePeriod(S);
else if (TC == 171)
PWM16_1_WritePeriod(F);
else if(TC == 179)
PWM16_1_WritePeriod(S);
else if(TC == 187)
PWM16_1_WritePeriod(R);
else if (TC == 195)
PWM16_1_WritePeriod(SILENT);
else if (TC == 196)
PWM16_1_WritePeriod(F);
else if(TC == 200)
PWM16_1_WritePeriod(C);
else if (TC == 204)
PWM16_1_WritePeriod(DD);
else if(TC == 208)
PWM16_1_WritePeriod(R);
else if(TC == 212)
PWM16_1_WritePeriod(C);
else if (TC == 216)
PWM16_1_WritePeriod(LL);
else if(TC == 220)
PWM16_1_WritePeriod(FF);
else if(TC == 224)
PWM16_1_WritePeriod(F);
else if (TC == 228)
PWM16_1_WritePeriod(S);
else if(TC == 232)
PWM16_1_WritePeriod(M);
else if (TC == 236)
PWM16_1_WritePeriod(F);
else if(TC == 240)
PWM16_1_WritePeriod(F);
else if(TC == 244)
PWM16_1_WritePeriod(M);
else if (TC == 248)
PWM16_1_WritePeriod(C);
else if(TC == 252)
PWM16_1_WritePeriod(R);
else if(TC == 253)
PWM16_1_WritePeriod(C);
else if(TC == 254)
PWM16_1_WritePeriod(R);
else if(TC == 258)
PWM16_1_WritePeriod(F);
else if (TC == 262)
PWM16_1_WritePeriod(SILENT);
else if (TC == 263)
PWM16_1_WritePeriod(C);
else if(TC == 265)
PWM16_1_WritePeriod(R);
else if (TC == 267)
PWM16_1_WritePeriod(C);
else if(TC == 269)
PWM16_1_WritePeriod(L);
else if(TC == 271)
PWM16_1_WritePeriod(F);
else if (TC == 273)
PWM16_1_WritePeriod(F);
else if(TC == 275)
PWM16_1_WritePeriod(R);
else if(TC == 279)
PWM16_1_WritePeriod(C);
else if (TC == 281)
PWM16_1_WritePeriod(C);
else if(TC == 283)
PWM16_1_WritePeriod(LL);
else if (TC == 287)
PWM16_1_WritePeriod(FF);
else if(TC == 291)
PWM16_1_WritePeriod(FF);
else if(TC == 293)
PWM16_1_WritePeriod(SS);
else if (TC == 295)
PWM16_1_WritePeriod(MM);
else if(TC == 297)
PWM16_1_WritePeriod(LL);
else if(TC == 299)
PWM16_1_WritePeriod(DD);
else if(TC == 301)
PWM16_1_WritePeriod(MM);
else if(TC == 303)
PWM16_1_WritePeriod(LL);
else if (TC == 305)
PWM16_1_WritePeriod(DD);
else if(TC == 307)
PWM16_1_WritePeriod(C);
else if(TC == 309)
PWM16_1_WritePeriod(R);
else if (TC == 311)
PWM16_1_WritePeriod(S);
else if(TC == 313)
PWM16_1_WritePeriod(F);
else if(TC == 315)
PWM16_1_WritePeriod(C);
else if(TC == 319)
PWM16_1_WritePeriod(C);
else if(TC == 321)
PWM16_1_WritePeriod(R);
else if(TC == 322)
PWM16_1_WritePeriod(C);
else if(TC == 323)
PWM16_1_WritePeriod(R);
else if (TC == 327)
PWM16_1_WritePeriod(SILENT);
else if (TC == 328)
PWM16_1_WritePeriod(C);
else if(TC == 330)
PWM16_1_WritePeriod(R);
else if (TC == 332)
PWM16_1_WritePeriod(C);
else if(TC == 334)
PWM16_1_WritePeriod(L);
else if(TC == 336)
PWM16_1_WritePeriod(F);
else if (TC == 340)
PWM16_1_WritePeriod(R);
else if(TC == 344)
PWM16_1_WritePeriod(C);
else if(TC == 348)
PWM16_1_WritePeriod(LL);
else if (TC == 352)
PWM16_1_WritePeriod(FF);
else if(TC == 356)
PWM16_1_WritePeriod(FF);
else if (TC == 358)
PWM16_1_WritePeriod(SS);
else if(TC == 360)
PWM16_1_WritePeriod(MM);
else if(TC == 362)
PWM16_1_WritePeriod(LL);
else if (TC == 364)
PWM16_1_WritePeriod(DD);
else if(TC == 366)
PWM16_1_WritePeriod(MM);
else if(TC == 368)
PWM16_1_WritePeriod(LL);
else if(TC == 370)
PWM16_1_WritePeriod(DD);
else if(TC == 372)
PWM16_1_WritePeriod(C);
else if (TC == 374)
PWM16_1_WritePeriod(R);
else if(TC == 376)
PWM16_1_WritePeriod(S);
else if(TC == 378)
PWM16_1_WritePeriod(F);
else if (TC == 380)
PWM16_1_WritePeriod(C);
else if(TC == 384)
PWM16_1_WritePeriod(C);
else if(TC == 386)
PWM16_1_WritePeriod(R);
else if(TC == 387)
PWM16_1_WritePeriod(C);
else if(TC == 388)
PWM16_1_WritePeriod(R);
else if (TC == 392)
PWM16_1_WritePeriod(SILENT);
else if (TC == 393)
PWM16_1_WritePeriod(C);
else if(TC == 395)
PWM16_1_WritePeriod(LL);
else if (TC == 396)
PWM16_1_WritePeriod(MM);
else if(TC == 397)
PWM16_1_WritePeriod(FF);
else if(TC == 399)
PWM16_1_WritePeriod(LL);
else if (TC == 400)
PWM16_1_WritePeriod(MM);
else if(TC == 401)
PWM16_1_WritePeriod(FF);
else if(TC == 402)
PWM16_1_WritePeriod(F);
else if (TC == 403)
PWM16_1_WritePeriod(S);
else if(TC == 404)
PWM16_1_WritePeriod(R);
else if (TC == 405)
PWM16_1_WritePeriod(C);
else if(TC == 406)
PWM16_1_WritePeriod(DD);
else if(TC == 407)
PWM16_1_WritePeriod(LL);
else if (TC == 408)
PWM16_1_WritePeriod(MM);
else if(TC == 409)
PWM16_1_WritePeriod(LL);
else if(TC == 411)
PWM16_1_WritePeriod(C);
else if(TC == 412)
PWM16_1_WritePeriod(DD);
else if(TC == 413)
PWM16_1_WritePeriod(LL);
else if (TC == 415)
PWM16_1_WritePeriod(L);
else if(TC == 416)
PWM16_1_WritePeriod(M);
else if(TC == 417)
PWM16_1_WritePeriod(F);
else if (TC == 418)
PWM16_1_WritePeriod(S);
else if(TC == 419)
PWM16_1_WritePeriod(F);
else if(TC == 420)
PWM16_1_WritePeriod(M);
else if(TC == 421)
PWM16_1_WritePeriod(F);
else if(TC == 422)
PWM16_1_WritePeriod(L);
else if(TC == 423)
PWM16_1_WritePeriod(M);
else if(TC == 424)
PWM16_1_WritePeriod(F);
else if (TC == 425)
PWM16_1_WritePeriod(C);
else if(TC == 427)
PWM16_1_WritePeriod(S);
else if (TC == 428)
PWM16_1_WritePeriod(F);
else if(TC == 429)
PWM16_1_WritePeriod(M);
else if(TC == 431)
PWM16_1_WritePeriod(L);
else if (TC == 432)
PWM16_1_WritePeriod(D);
else if(TC == 433)
PWM16_1_WritePeriod(L);
else if(TC == 434)
PWM16_1_WritePeriod(D);
else if (TC == 435)
PWM16_1_WritePeriod(c);
else if(TC == 436)
PWM16_1_WritePeriod(D);
else if (TC == 437)
PWM16_1_WritePeriod(L);
else if(TC == 438)
PWM16_1_WritePeriod(M);
else if(TC == 439)
PWM16_1_WritePeriod(F);
else if (TC == 440)
PWM16_1_WritePeriod(S);
else if(TC == 441)
PWM16_1_WritePeriod(C);
else if(TC == 443)
PWM16_1_WritePeriod(S);
else if(TC == 444)
PWM16_1_WritePeriod(F);
else if(TC == 445)
PWM16_1_WritePeriod(S);
else if (TC == 447)
PWM16_1_WritePeriod(DD);
else if(TC == 448)
PWM16_1_WritePeriod(C);
else if(TC == 449)
PWM16_1_WritePeriod(R);
else if (TC == 450)
PWM16_1_WritePeriod(S);
else if(TC == 451)
PWM16_1_WritePeriod(R);
else if(TC == 452)
PWM16_1_WritePeriod(C);
else if(TC == 453)
PWM16_1_WritePeriod(DD);
else if(TC == 454)
PWM16_1_WritePeriod(LL);
else if(TC == 455)
PWM16_1_WritePeriod(MM);
else if(TC == 456)
PWM16_1_WritePeriod(DD);
else if (TC == 457)
PWM16_1_WritePeriod(SILENT);
else if (TC == 458)
PWM16_1_WritePeriod(LL);
else if(TC == 460)
PWM16_1_WritePeriod(LL);
else if (TC == 461)
PWM16_1_WritePeriod(MM);
else if(TC == 462)
PWM16_1_WritePeriod(FF);
else if(TC == 464)
PWM16_1_WritePeriod(LL);
else if (TC == 465)
PWM16_1_WritePeriod(MM);
else if(TC == 466)
PWM16_1_WritePeriod(FF);
else if(TC == 467)
PWM16_1_WritePeriod(R);
else if (TC == 468)
PWM16_1_WritePeriod(C);
else if(TC == 469)
PWM16_1_WritePeriod(DD);
else if (TC == 470)
PWM16_1_WritePeriod(LL);
else if(TC == 471)
PWM16_1_WritePeriod(DD);
else if(TC == 472)
PWM16_1_WritePeriod(LL);
else if (TC == 473)
PWM16_1_WritePeriod(MM);
else if(TC == 474)
PWM16_1_WritePeriod(LL);
else if(TC == 476)
PWM16_1_WritePeriod(C);
else if(TC == 477)
PWM16_1_WritePeriod(DD);
else if(TC == 478)
PWM16_1_WritePeriod(LL);
else if (TC == 480)
PWM16_1_WritePeriod(L);
else if(TC == 481)
PWM16_1_WritePeriod(M);
else if(TC == 482)
PWM16_1_WritePeriod(F);
else if (TC == 483)
PWM16_1_WritePeriod(S);
else if(TC == 484)
PWM16_1_WritePeriod(F);
else if(TC == 485)
PWM16_1_WritePeriod(M);
else if(TC == 486)
PWM16_1_WritePeriod(F);
else if(TC == 490)
PWM16_1_WritePeriod(M);
else if(TC == 492)
PWM16_1_WritePeriod(S);
else if(TC == 493)
PWM16_1_WritePeriod(F);
else if (TC == 494)
PWM16_1_WritePeriod(M);
else if(TC == 496)
PWM16_1_WritePeriod(L);
else if (TC == 497)
PWM16_1_WritePeriod(D);
else if(TC == 498)
PWM16_1_WritePeriod(L);
else if(TC == 499)
PWM16_1_WritePeriod(D);
else if (TC == 500)
PWM16_1_WritePeriod(c);
else if(TC == 501)
PWM16_1_WritePeriod(D);
else if(TC == 502)
PWM16_1_WritePeriod(L);
else if (TC == 503)
PWM16_1_WritePeriod(M);
else if(TC == 504)
PWM16_1_WritePeriod(F);
else if (TC == 505)
PWM16_1_WritePeriod(S);
else if(TC == 506)
PWM16_1_WritePeriod(M);
else if(TC == 508)
PWM16_1_WritePeriod(S);
else if (TC == 509)
PWM16_1_WritePeriod(F);
else if(TC == 510)
PWM16_1_WritePeriod(S);
else if(TC == 512)
PWM16_1_WritePeriod(R);
else if(TC == 513)
PWM16_1_WritePeriod(S);
else if(TC == 514)
PWM16_1_WritePeriod(F);
else if (TC == 515)
PWM16_1_WritePeriod(S);
else if(TC == 516)
PWM16_1_WritePeriod(R);
else if(TC == 517)
PWM16_1_WritePeriod(C);
else if (TC == 518)
PWM16_1_WritePeriod(DD);
else if(TC == 519)
PWM16_1_WritePeriod(LL);
else if(TC == 520)
PWM16_1_WritePeriod(MM);
else if(TC == 521)
PWM16_1_WritePeriod(FF);
else if (TC == 522)
PWM16_1_WritePeriod(SILENT);
else if (TC == 523)
PWM16_1_WritePeriod(LL);
else if(TC == 525)
PWM16_1_WritePeriod(C);
else if (TC == 526)
PWM16_1_WritePeriod(R);
else if(TC == 527)
PWM16_1_WritePeriod(C);
else if(TC == 529)
PWM16_1_WritePeriod(L);
else if (TC == 531)
PWM16_1_WritePeriod(F);
else if(TC == 533)
PWM16_1_WritePeriod(R);
else if(TC == 534)
PWM16_1_WritePeriod(C);
else if (TC == 535)
PWM16_1_WritePeriod(DD);
else if(TC == 537)
PWM16_1_WritePeriod(R);
else if (TC == 539)
PWM16_1_WritePeriod(S);
else if(TC == 541)
PWM16_1_WritePeriod(C);
else if(TC == 542)
PWM16_1_WritePeriod(DD);
else if (TC == 543)
PWM16_1_WritePeriod(LL);
else if(TC == 545)
PWM16_1_WritePeriod(C);
else if(TC == 547)
PWM16_1_WritePeriod(LL);
else if(TC == 549)
PWM16_1_WritePeriod(LL);
else if(TC == 550)
PWM16_1_WritePeriod(DD);
else if (TC == 551)
PWM16_1_WritePeriod(C);
else if(TC == 553)
PWM16_1_WritePeriod(R);
else if(TC == 555)
PWM16_1_WritePeriod(S);
else if (TC == 557)
PWM16_1_WritePeriod(S);
else if(TC == 558)
PWM16_1_WritePeriod(F);
else if(TC == 559)
PWM16_1_WritePeriod(S);
else if(TC == 561)
PWM16_1_WritePeriod(R);
else if(TC == 563)
PWM16_1_WritePeriod(C);
else if(TC == 565)
PWM16_1_WritePeriod(LL);
else if(TC == 566)
PWM16_1_WritePeriod(DD);
else if (TC == 567)
PWM16_1_WritePeriod(C);
else if(TC == 569)
PWM16_1_WritePeriod(FF);
else if (TC == 571)
PWM16_1_WritePeriod(MM);
else if(TC == 573)
PWM16_1_WritePeriod(C);
else if(TC == 574)
PWM16_1_WritePeriod(R);
else if (TC == 575)
PWM16_1_WritePeriod(S);
else if(TC == 577)
PWM16_1_WritePeriod(S);
else if(TC == 579)
PWM16_1_WritePeriod(F);
else if (TC == 581)
PWM16_1_WritePeriod(F);
else if(TC == 582)
PWM16_1_WritePeriod(M);
else if (TC == 583)
PWM16_1_WritePeriod(F);
else if(TC == 585)
PWM16_1_WritePeriod(F);
else if (TC == 587)
PWM16_1_WritePeriod(SILENT);
else if (TC == 588)
PWM16_1_WritePeriod(F);
else if(TC == 592)
PWM16_1_WritePeriod(C);
else if (TC == 594)
PWM16_1_WritePeriod(LL);
else if(TC == 596)
PWM16_1_WritePeriod(LL);
else if(TC == 598)
PWM16_1_WritePeriod(MM);
else if (TC == 600)
PWM16_1_WritePeriod(LL);
else if(TC == 602)
PWM16_1_WritePeriod(DD);
else if(TC == 604)
PWM16_1_WritePeriod(C);
else if (TC == 608)
PWM16_1_WritePeriod(C);
else if(TC == 610)
PWM16_1_WritePeriod(C);
else if (TC == 612)
PWM16_1_WritePeriod(C);
else if(TC == 614)
PWM16_1_WritePeriod(DD);
else if(TC == 616)
PWM16_1_WritePeriod(C);
else if (TC == 618)
PWM16_1_WritePeriod(R);
else if(TC == 620)
PWM16_1_WritePeriod(S);
else if(TC == 624)
PWM16_1_WritePeriod(S);
else if(TC == 626)
PWM16_1_WritePeriod(S);
else if(TC == 628)
PWM16_1_WritePeriod(C);
else if (TC == 636)
PWM16_1_WritePeriod(C);
else if(TC == 638)
PWM16_1_WritePeriod(Ra);
else if(TC == 640)
PWM16_1_WritePeriod(S);
else if (TC == 642)
PWM16_1_WritePeriod(R);
else if(TC == 644)
PWM16_1_WritePeriod(F);
else if (TC == 652)
PWM16_1_WritePeriod(SILENT);
else if (TC == 653)
PWM16_1_WritePeriod(C);
else if(TC == 657)
PWM16_1_WritePeriod(LL);
else if (TC == 659)
PWM16_1_WritePeriod(FF);
else if(TC == 661)
PWM16_1_WritePeriod(FF);
else if(TC == 663)
PWM16_1_WritePeriod(SS);
else if (TC == 665)
PWM16_1_WritePeriod(FF);
else if(TC == 667)
PWM16_1_WritePeriod(MM);
else if(TC == 669)
PWM16_1_WritePeriod(LL);
else if (TC == 673)
PWM16_1_WritePeriod(CC);
else if(TC == 681)
PWM16_1_WritePeriod(RRa);
else if (TC == 685)
PWM16_1_WritePeriod(SS);
else if(TC == 693)
PWM16_1_WritePeriod(C);
else if(TC == 697)
PWM16_1_WritePeriod(FF);
else if (TC == 701)
PWM16_1_WritePeriod(SS);
else if(TC == 709)
PWM16_1_WritePeriod(FF);
else if (TC == 717)
PWM16_1_WritePeriod(SILENT);
else if (TC == 718)
PWM16_1_WritePeriod(FF);
else if(TC == 726)
PWM16_1_WritePeriod(F);
else if (TC == 730)
PWM16_1_WritePeriod(DD);
else if(TC == 734)
PWM16_1_WritePeriod(C);
else if(TC == 738)
PWM16_1_WritePeriod(L);
else if (TC == 742)
PWM16_1_WritePeriod(LL);
else if(TC == 748)
PWM16_1_WritePeriod(DD);
else if(TC == 750)
PWM16_1_WritePeriod(C);
else if (TC == 754)
PWM16_1_WritePeriod(SS);
else if(TC == 758)
PWM16_1_WritePeriod(FF);
else if (TC == 762)
PWM16_1_WritePeriod(C);
else if(TC == 766)
PWM16_1_WritePeriod(DD);
else if(TC == 782)
PWM16_1_WritePeriod(LL);
else if (TC == 798)
PWM16_1_WritePeriod(SILENT);
}
  if (n==2) {
       PWM16_1_WritePeriod(SILENT);
   k=0;
   }
}


void main(void)
{

char*strPtr;

UART_CmdReset(); // Initialize receiver/cmd buffer
UART_IntCntl(UART_ENABLE_RX_INT); // Enable RX interrupts
Counter8_WritePeriod(155); // Set up baud rate generator
Counter8_WriteCompareValue(77);
Counter8_Start(); // Turn on baud rate generator
UART_Start(UART_PARITY_NONE); // Enable UART
M8C_EnableGInt ; // Turn on interrupts
PWM16_1_Start();

Timer16_1_EnableInt();
Timer16_1_Start();
UART_CPutString("\r\nWhich music do you want to play?\r\n");
UART_CPutString("\r\na:Canon in D ");
  UART_CPutString("\r\nb:Lemon");
   UART_CPutString("\r\nc:きらきら星");
   UART_CPutString("\r\nd:カエルの歌 ");
   UART_CPutString("\r\ne:千本桜");
   UART_CPutString("\r\ns:change song");

while(1){
if(UART_bCmdCheck()){
  if(strPtr = UART_szGetParam()){
            UART_CPutString("\rFound valid command\r\nCommand =>");
            UART_PutString(strPtr);
            UART_CPutString("\n");
         
             TC = 0;
         if(*strPtr == 'a'){
             n=1;
           LCD_1_Start();
           LCD_1_Position(0,0);
           LCD_1_PrCString("Canon in D");
           UART_CPutString("Canon in D is playing\n");    
         }
        if(*strPtr == 's'){
             n=2;
           LCD_1_Start();
           LCD_1_Position(0,0);
           LCD_1_PrCString("changing");
           UART_CPutString("Changing song\n\rChoose again\n");
           UART_CPutString("\r\na:Canon in D ");
           UART_CPutString("\r\nb:Lemon");
           UART_CPutString("\r\nc:きらきら星");
           UART_CPutString("\r\nd:カエルの歌 ");
           UART_CPutString("\r\ne:千本桜");
           UART_CPutString("\r\ns:change song");

        }
       
       
    }
        
     
    UART_CmdReset();
}
}
}


考察

今回の課題ではtimer_pwm2とuart_1を参考にし組み合わせた。
工夫した点:
曲が長くて長時間かけて作った。
タイマー割り込みの時間計算により、曲の再生時間を表示することができた。
同じ音が続けてあるときその音が一続きに出てしまうので、SILENTをその間に入れることで違和感なく音を出すことができた。
改善点:
曲を一時停止しその後再生したり、リピートするなどの機能。
VRボリュームを使って音の大きさを調整する機能。
時間があれば割りこみの回数を数えているをif文の中でLCDに歌詞を表示させるコードを作ることができた。

  • 最終更新:2020-06-02 16:31:13

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

認証パスワード