2018.07.26

Dependencies:   EthernetInterface TextLCD USBDevice USBHost mbed

Committer:
sayzyas
Date:
Thu Jul 26 00:26:07 2018 +0000
Revision:
1:fdf87a1a724b
Parent:
0:19075177391c
2018.07.26

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sayzyas 0:19075177391c 1 #include "mbed.h"
sayzyas 0:19075177391c 2 #include "rtos.h"
sayzyas 0:19075177391c 3 #include "stdio.h"
sayzyas 0:19075177391c 4 #include "common.h"
sayzyas 0:19075177391c 5 #include "com_func.h"
sayzyas 0:19075177391c 6 #include "music.h"
sayzyas 0:19075177391c 7
sayzyas 0:19075177391c 8 // JKSoft Blue mbed Board Specific Seting
sayzyas 0:19075177391c 9 AnalogOut DACout(p18);
sayzyas 0:19075177391c 10 DigitalOut AMPEnable(p12);
sayzyas 0:19075177391c 11
sayzyas 0:19075177391c 12 void waveMusic::wave(float volume , float fq , float time)
sayzyas 0:19075177391c 13 {
sayzyas 0:19075177391c 14 float w_time = 1.0 / fq;
sayzyas 0:19075177391c 15
sayzyas 0:19075177391c 16 AMPEnable = 0;
sayzyas 0:19075177391c 17 for (float i=0; i<time / w_time; i++) {
sayzyas 0:19075177391c 18 DACout = volume;
sayzyas 0:19075177391c 19 wait(w_time/2);
sayzyas 0:19075177391c 20 DACout = 0.0;
sayzyas 0:19075177391c 21 wait(w_time/2);
sayzyas 0:19075177391c 22 }
sayzyas 0:19075177391c 23 AMPEnable = 1;
sayzyas 0:19075177391c 24
sayzyas 0:19075177391c 25 }
sayzyas 0:19075177391c 26
sayzyas 0:19075177391c 27 void waveMusic::pi( int count )
sayzyas 0:19075177391c 28 {
sayzyas 0:19075177391c 29 for( int i=0; i < count; i++)
sayzyas 0:19075177391c 30 {
sayzyas 0:19075177391c 31 // vol freq time
sayzyas 0:19075177391c 32 wave( 0.3, 3000.0 * 1, 0.05 );
sayzyas 0:19075177391c 33 wave( 0.0, 3000.0 * 1, 0.05 );
sayzyas 0:19075177391c 34 }
sayzyas 0:19075177391c 35 Thread::wait(80); // msec
sayzyas 0:19075177391c 36 }
sayzyas 0:19075177391c 37
sayzyas 0:19075177391c 38
sayzyas 0:19075177391c 39 void waveMusic::bz( int count )
sayzyas 0:19075177391c 40 {
sayzyas 0:19075177391c 41 for( int i=0; i < count; i++)
sayzyas 0:19075177391c 42 {
sayzyas 0:19075177391c 43 // vol freq time
sayzyas 0:19075177391c 44 wave( 0.6, 3000.0, 0.1 );
sayzyas 0:19075177391c 45 wave( 0.0, 3000.0, 0.1 );
sayzyas 0:19075177391c 46 }
sayzyas 0:19075177391c 47 Thread::wait(150); // msec
sayzyas 0:19075177391c 48 }
sayzyas 0:19075177391c 49
sayzyas 0:19075177391c 50 void waveMusic::bz_error( int count )
sayzyas 0:19075177391c 51 {
sayzyas 0:19075177391c 52 for( int i=0; i < count; i++)
sayzyas 0:19075177391c 53 {
sayzyas 0:19075177391c 54 // vol freq time
sayzyas 0:19075177391c 55 wave( 0.6, 3000.0, 0.3 );
sayzyas 0:19075177391c 56 wave( 0.0, 3000.0, 0.3 );
sayzyas 0:19075177391c 57 }
sayzyas 0:19075177391c 58 Thread::wait(300); // msec
sayzyas 0:19075177391c 59 }
sayzyas 0:19075177391c 60
sayzyas 0:19075177391c 61
sayzyas 0:19075177391c 62 void waveMusic::note(
sayzyas 0:19075177391c 63 float on_freq,
sayzyas 0:19075177391c 64 float on_time,
sayzyas 0:19075177391c 65 float off_time
sayzyas 0:19075177391c 66 ){
sayzyas 0:19075177391c 67 wave( 0.1, on_freq, on_time );
sayzyas 0:19075177391c 68 wave( 0.0, on_freq, off_time );
sayzyas 0:19075177391c 69 }
sayzyas 0:19075177391c 70
sayzyas 0:19075177391c 71 void waveMusic::knkk( void )
sayzyas 0:19075177391c 72 {
sayzyas 0:19075177391c 73 Thread::wait(300); // msec
sayzyas 0:19075177391c 74 note( 146.82*3, 0.3, 0.08 ); // shi
sayzyas 0:19075177391c 75 note( 220.00*3, 0.6, 0.08 ); // ra
sayzyas 0:19075177391c 76 note( 246.94*3, 0.3, 0.08 ); // shi
sayzyas 0:19075177391c 77 /* note( 261.63*3, 0.1, 0.02 ); // do
sayzyas 0:19075177391c 78 note( 261.63*3, 0.1, 0.02 ); // do
sayzyas 0:19075177391c 79 note( 246.94*3, 0.1, 0.02 ); // shi
sayzyas 0:19075177391c 80 note( 220.00*3, 0.1, 0.02 ); // ra
sayzyas 0:19075177391c 81 note( 146.835*3, 0.1, 0.02 ); // re
sayzyas 0:19075177391c 82 note( 146.835*3, 0.1, 0.02 ); // re
sayzyas 0:19075177391c 83 note( 146.835*3, 0.1, 0.02); // re
sayzyas 0:19075177391c 84 note( 164.82*3, 0.1, 0.02 ); // mi
sayzyas 0:19075177391c 85 note( 174.62*3, 0.3, 0.02 ); // fa */
sayzyas 0:19075177391c 86 Thread::wait(300); // msec
sayzyas 0:19075177391c 87 }
sayzyas 0:19075177391c 88
sayzyas 0:19075177391c 89 void waveMusic::PC9801( void )
sayzyas 0:19075177391c 90 {
sayzyas 0:19075177391c 91 Thread::wait(300); // msec
sayzyas 0:19075177391c 92 note( 2000.0, 0.2, 0.05 ); // pi
sayzyas 0:19075177391c 93 note( 1000.0, 0.2, 0.05 ); // po
sayzyas 0:19075177391c 94 Thread::wait(300); // msec
sayzyas 0:19075177391c 95 }