![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
speakerout3.h@15:7565013b55df, 2020-04-12 (annotated)
- Committer:
- rdobbs6
- Date:
- Sun Apr 12 15:47:22 2020 +0000
- Revision:
- 15:7565013b55df
Added Speakerout3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rdobbs6 | 15:7565013b55df | 1 | #include "mbed.h" |
rdobbs6 | 15:7565013b55df | 2 | #include "Speaker.h" |
rdobbs6 | 15:7565013b55df | 3 | |
rdobbs6 | 15:7565013b55df | 4 | |
rdobbs6 | 15:7565013b55df | 5 | Serial pc(USBTX,USBRX); |
rdobbs6 | 15:7565013b55df | 6 | Speaker mySpeaker(p26); |
rdobbs6 | 15:7565013b55df | 7 | |
rdobbs6 | 15:7565013b55df | 8 | Timer t; |
rdobbs6 | 15:7565013b55df | 9 | |
rdobbs6 | 15:7565013b55df | 10 | |
rdobbs6 | 15:7565013b55df | 11 | char note; |
rdobbs6 | 15:7565013b55df | 12 | float freq [100]; |
rdobbs6 | 15:7565013b55df | 13 | float freq2; |
rdobbs6 | 15:7565013b55df | 14 | float limit; |
rdobbs6 | 15:7565013b55df | 15 | |
rdobbs6 | 15:7565013b55df | 16 | float *record(float freq1[100]) { |
rdobbs6 | 15:7565013b55df | 17 | t.start(); |
rdobbs6 | 15:7565013b55df | 18 | for(int i = 0; i<100; i++){ |
rdobbs6 | 15:7565013b55df | 19 | pc.printf("Please enter note\n"); |
rdobbs6 | 15:7565013b55df | 20 | note = pc.getc(); |
rdobbs6 | 15:7565013b55df | 21 | switch (note){ |
rdobbs6 | 15:7565013b55df | 22 | case 'a': |
rdobbs6 | 15:7565013b55df | 23 | freq2 = 523.25; |
rdobbs6 | 15:7565013b55df | 24 | break; |
rdobbs6 | 15:7565013b55df | 25 | |
rdobbs6 | 15:7565013b55df | 26 | case 'b': |
rdobbs6 | 15:7565013b55df | 27 | freq2 = 554.37; |
rdobbs6 | 15:7565013b55df | 28 | break; |
rdobbs6 | 15:7565013b55df | 29 | |
rdobbs6 | 15:7565013b55df | 30 | case 'c': |
rdobbs6 | 15:7565013b55df | 31 | freq2 = 587.33; |
rdobbs6 | 15:7565013b55df | 32 | break; |
rdobbs6 | 15:7565013b55df | 33 | |
rdobbs6 | 15:7565013b55df | 34 | case 'd': |
rdobbs6 | 15:7565013b55df | 35 | freq2 = 622.25; |
rdobbs6 | 15:7565013b55df | 36 | break; |
rdobbs6 | 15:7565013b55df | 37 | |
rdobbs6 | 15:7565013b55df | 38 | case 'e': |
rdobbs6 | 15:7565013b55df | 39 | freq2 = 659.26; |
rdobbs6 | 15:7565013b55df | 40 | break; |
rdobbs6 | 15:7565013b55df | 41 | |
rdobbs6 | 15:7565013b55df | 42 | case 'f': |
rdobbs6 | 15:7565013b55df | 43 | freq2 = 698.46; |
rdobbs6 | 15:7565013b55df | 44 | break; |
rdobbs6 | 15:7565013b55df | 45 | |
rdobbs6 | 15:7565013b55df | 46 | case 'g': |
rdobbs6 | 15:7565013b55df | 47 | freq2 = 739.99; |
rdobbs6 | 15:7565013b55df | 48 | break; |
rdobbs6 | 15:7565013b55df | 49 | |
rdobbs6 | 15:7565013b55df | 50 | case 'h': |
rdobbs6 | 15:7565013b55df | 51 | freq2 = 783.99; |
rdobbs6 | 15:7565013b55df | 52 | break; |
rdobbs6 | 15:7565013b55df | 53 | |
rdobbs6 | 15:7565013b55df | 54 | case 'i': |
rdobbs6 | 15:7565013b55df | 55 | freq2 = 830.61; |
rdobbs6 | 15:7565013b55df | 56 | break; |
rdobbs6 | 15:7565013b55df | 57 | |
rdobbs6 | 15:7565013b55df | 58 | case 'j': |
rdobbs6 | 15:7565013b55df | 59 | freq2 = 880.00; |
rdobbs6 | 15:7565013b55df | 60 | break; |
rdobbs6 | 15:7565013b55df | 61 | |
rdobbs6 | 15:7565013b55df | 62 | case 'k': |
rdobbs6 | 15:7565013b55df | 63 | freq2 = 932.33; |
rdobbs6 | 15:7565013b55df | 64 | break; |
rdobbs6 | 15:7565013b55df | 65 | |
rdobbs6 | 15:7565013b55df | 66 | case 'l': |
rdobbs6 | 15:7565013b55df | 67 | freq2 = 987.77; |
rdobbs6 | 15:7565013b55df | 68 | break; |
rdobbs6 | 15:7565013b55df | 69 | } |
rdobbs6 | 15:7565013b55df | 70 | freq1[i] = freq2; |
rdobbs6 | 15:7565013b55df | 71 | limit = t.read(); |
rdobbs6 | 15:7565013b55df | 72 | if(limit > 30){ |
rdobbs6 | 15:7565013b55df | 73 | t.stop(); |
rdobbs6 | 15:7565013b55df | 74 | break; |
rdobbs6 | 15:7565013b55df | 75 | } |
rdobbs6 | 15:7565013b55df | 76 | } |
rdobbs6 | 15:7565013b55df | 77 | return freq1; |
rdobbs6 | 15:7565013b55df | 78 | } |
rdobbs6 | 15:7565013b55df | 79 | |
rdobbs6 | 15:7565013b55df | 80 | |
rdobbs6 | 15:7565013b55df | 81 | int main() { |
rdobbs6 | 15:7565013b55df | 82 | record(freq); |
rdobbs6 | 15:7565013b55df | 83 | for (int i = 0; i<100; i++){ |
rdobbs6 | 15:7565013b55df | 84 | if (freq[i] == 0){ |
rdobbs6 | 15:7565013b55df | 85 | } |
rdobbs6 | 15:7565013b55df | 86 | else{ |
rdobbs6 | 15:7565013b55df | 87 | mySpeaker.PlayNote(freq[i],1.0,0.1); |
rdobbs6 | 15:7565013b55df | 88 | } |
rdobbs6 | 15:7565013b55df | 89 | } |
rdobbs6 | 15:7565013b55df | 90 | } |