ECE3872 HW/SW Project Code

Dependencies:   mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1

Committer:
trmontgomery
Date:
Mon Apr 13 02:43:08 2020 +0000
Revision:
18:0e0edd4f9e4d
Parent:
speakerout3.h@15:7565013b55df
Child:
26:2063ee8419cc
all files successfully merged

Who changed what in which revision?

UserRevisionLine numberNew 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
trmontgomery 18:0e0edd4f9e4d 81 void audio_out() {
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 }