このサンプルプログラムはメロディを演奏するプログラムです。 メロディデータはプログラムコードにデータテーブルとして記憶しています。 This sample program is a program that plays the melody. Melody data is stored as data tables in the program code. =video= {{http://www.youtube.com/watch?v=wX-QUprMvT0}}

Dependencies:   mbed Sound

メロディ出力Library のLPC1114FN28対応

https://www.youtube.com/watch?v=CDjyflSWb4Y&feature=c4-overview&list=UUBKFbjZziYG1M-dKWqTlUwA

LPC1768用に作成したメロディLibraryをLPC1114FN28に対応させました。
PWM周期を1[us]から10[us]にして、メロディ出力のためのタイマー割り込みも20[us]から40[us]にしました。(音質にはさほど影響は無いと感じました)

サンプルプログラムはLPC1768用ですので、LPC1114FN28で使用する場合は、main.cppの30行目をコメントアウトして、31行目を有効にして、コンパイルしてください。

Information

SoundLibraryExample_Melody_ProgramData
main.cpp

30行目 //Sound sound(p21, p23);  // LPC1768 p21(PwmOut), p23(DigitalOut)
31行目 Sound sound(dp1, dp2); // LPC1114FN28 dp1(PwmOut), dp2(DigitalOut)

スピーカはLCP1114FN28のdp1とdp2に接続してください。(とりあえずは電流制限抵抗は無くてもかまいません)

/media/uploads/suupen/lpc1114fn28-------.jpg

Committer:
suupen
Date:
Sun Nov 20 09:43:45 2011 +0000
Revision:
0:f773f5034b8b
Child:
1:aa04f8cd7355
V1.0 2011/11/20

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 0:f773f5034b8b 1 //=============================================
suupen 0:f773f5034b8b 2 // Sound Library Example Program
suupen 0:f773f5034b8b 3 // This sample program will play a melody
suupen 0:f773f5034b8b 4 // Melody data for this program is set in the program as a data table.(DEMEKIN[])
suupen 0:f773f5034b8b 5 // <schematic>
suupen 0:f773f5034b8b 6 //
suupen 0:f773f5034b8b 7 // /
suupen 0:f773f5034b8b 8 // mbed -------------- --/
suupen 0:f773f5034b8b 9 // p21(pwmOut) -----| R:200[ohm] |-----| | speaker
suupen 0:f773f5034b8b 10 // -------------- | |
suupen 0:f773f5034b8b 11 // | |
suupen 0:f773f5034b8b 12 // p10(DigitalOut) ------------------------| |
suupen 0:f773f5034b8b 13 // --\
suupen 0:f773f5034b8b 14 // \
suupen 0:f773f5034b8b 15 //==============================================
suupen 0:f773f5034b8b 16 #include "mbed.h"
suupen 0:f773f5034b8b 17 #include "Sound.h"
suupen 0:f773f5034b8b 18
suupen 0:f773f5034b8b 19 // "demekin no uta" melody data
suupen 0:f773f5034b8b 20 const Sound::sound_t DEMEKIN[] = {
suupen 0:f773f5034b8b 21 // onkai,hatuon jikan[ms]
suupen 0:f773f5034b8b 22 // hanon siji 0:b(flat) 1:tujo 2:#(sharp)
suupen 0:f773f5034b8b 23 // | C1 - B9 kan deno onkai(Gx ha 9x ni okikae te siji) 0xFF=end data
suupen 0:f773f5034b8b 24 // | | time (1/1[ms]/count)
suupen 0:f773f5034b8b 25 // | | | envelope(yoin) (1/1 [ms]/count)
suupen 0:f773f5034b8b 26 // | | | |
suupen 0:f773f5034b8b 27 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 28 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 29 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 30 {1,0x00,600,500},
suupen 0:f773f5034b8b 31
suupen 0:f773f5034b8b 32 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 33 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 34 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 35 {1,0x00,600,500},
suupen 0:f773f5034b8b 36
suupen 0:f773f5034b8b 37 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 38 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 39 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 40 {1,0x95,600,500}, // no
suupen 0:f773f5034b8b 41 {1,0x95,150,500}, // shi
suupen 0:f773f5034b8b 42 {1,0x00,900,500},
suupen 0:f773f5034b8b 43 {1,0xE5,750,500}, // po
suupen 0:f773f5034b8b 44 {1,0x00,450,500},
suupen 0:f773f5034b8b 45
suupen 0:f773f5034b8b 46 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 47 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 48 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 49 {1,0x00,600,500},
suupen 0:f773f5034b8b 50
suupen 0:f773f5034b8b 51 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 52 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 53 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 54 {1,0x00,600,500},
suupen 0:f773f5034b8b 55
suupen 0:f773f5034b8b 56 {1,0x95,600,500}, // ju
suupen 0:f773f5034b8b 57 {1,0xE5,600,500}, // go
suupen 0:f773f5034b8b 58 {1,0xD5,600,500}, // n
suupen 0:f773f5034b8b 59 {1,0xC5,600,500}, // no
suupen 0:f773f5034b8b 60 {1,0xE5,150,500}, // shi
suupen 0:f773f5034b8b 61 {1,0x00,900,500},
suupen 0:f773f5034b8b 62 {1,0xC5,750,500}, // po
suupen 0:f773f5034b8b 63 {1,0x00,1350,500},
suupen 0:f773f5034b8b 64
suupen 0:f773f5034b8b 65 {1,0xFF,1000,0}, // end
suupen 0:f773f5034b8b 66
suupen 0:f773f5034b8b 67 };
suupen 0:f773f5034b8b 68
suupen 0:f773f5034b8b 69 Sound sound(p21, p10); // p21(PwmOut), p10(DigitalOut)
suupen 0:f773f5034b8b 70
suupen 0:f773f5034b8b 71 int main() {
suupen 0:f773f5034b8b 72
suupen 0:f773f5034b8b 73 // Specifying the data to play melody
suupen 0:f773f5034b8b 74 sound.sound_enso((Sound::sound_t*)DEMEKIN);
suupen 0:f773f5034b8b 75
suupen 0:f773f5034b8b 76 while(1) {
suupen 0:f773f5034b8b 77 if(sound.sound_enso() == false){
suupen 0:f773f5034b8b 78 sound.sound_enso(true);
suupen 0:f773f5034b8b 79 }
suupen 0:f773f5034b8b 80
suupen 0:f773f5034b8b 81 }
suupen 0:f773f5034b8b 82 }