2018.07.26
Dependencies: EthernetInterface TextLCD USBDevice USBHost mbed
music.cpp@0:19075177391c, 2018-07-26 (annotated)
- Committer:
- sayzyas
- Date:
- Thu Jul 26 00:18:49 2018 +0000
- Revision:
- 0:19075177391c
2018.07.26
Who changed what in which revision?
User | Revision | Line number | New 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 | } |