Kevin Chen / Mbed 2 deprecated drue

Dependencies:   mbed SDFileSystem

Committer:
kchen7
Date:
Fri Apr 12 13:58:01 2019 +0000
Revision:
1:b0962a8bcc6d
Parent:
0:fa9e77516ba6
Child:
2:81f364f7a4a6

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kchen7 0:fa9e77516ba6 1 // ESE350 Final Project: Drue
kchen7 0:fa9e77516ba6 2 #include "mbed.h"
kchen7 0:fa9e77516ba6 3 #include <string>
kchen7 0:fa9e77516ba6 4 // Pin setup / variable declarations
kchen7 0:fa9e77516ba6 5 DigitalIn butC(p6);
kchen7 0:fa9e77516ba6 6 DigitalIn butD(p8);
kchen7 0:fa9e77516ba6 7 DigitalIn butE(p10);
kchen7 0:fa9e77516ba6 8 DigitalIn butF(p14);
kchen7 0:fa9e77516ba6 9 DigitalIn butG(p16);
kchen7 0:fa9e77516ba6 10 DigitalOut ledC(p5);
kchen7 0:fa9e77516ba6 11 DigitalOut ledD(p7);
kchen7 0:fa9e77516ba6 12 DigitalOut ledE(p9);
kchen7 0:fa9e77516ba6 13 DigitalOut ledF(p13);
kchen7 0:fa9e77516ba6 14 DigitalOut ledG(p15);
kchen7 0:fa9e77516ba6 15 DigitalIn butMode(p17);
kchen7 0:fa9e77516ba6 16 PwmOut speaker(p26);
kchen7 0:fa9e77516ba6 17 bool switchPressed;
kchen7 0:fa9e77516ba6 18 int mode;
kchen7 0:fa9e77516ba6 19 int numModes = 2;
kchen7 0:fa9e77516ba6 20 void switchModeCheck() {
kchen7 0:fa9e77516ba6 21 if (butMode == 1) {
kchen7 0:fa9e77516ba6 22 if (!switchPressed) {
kchen7 0:fa9e77516ba6 23 switchPressed = true;
kchen7 0:fa9e77516ba6 24 mode++;
kchen7 0:fa9e77516ba6 25 if (mode == numModes) {
kchen7 0:fa9e77516ba6 26 mode = 0;
kchen7 0:fa9e77516ba6 27 }
kchen7 0:fa9e77516ba6 28 }
kchen7 0:fa9e77516ba6 29 } else {
kchen7 0:fa9e77516ba6 30 switchPressed = false;
kchen7 0:fa9e77516ba6 31 }
kchen7 0:fa9e77516ba6 32 }
kchen7 0:fa9e77516ba6 33 void cycleSound() {
kchen7 1:b0962a8bcc6d 34 static int count = 0;
kchen7 1:b0962a8bcc6d 35 if (count == 0){
kchen7 1:b0962a8bcc6d 36 speaker.period(1.0/523.25);
kchen7 1:b0962a8bcc6d 37 } else if (count == 1){
kchen7 1:b0962a8bcc6d 38 speaker.period(1.0/587.33);
kchen7 1:b0962a8bcc6d 39 }else if (count == 2){
kchen7 1:b0962a8bcc6d 40 speaker.period(1.0/659.25);
kchen7 1:b0962a8bcc6d 41 }else if (count == 3){
kchen7 1:b0962a8bcc6d 42 speaker.period(1.0/698.46);
kchen7 1:b0962a8bcc6d 43 }else if (count == 4){
kchen7 1:b0962a8bcc6d 44 speaker.period(1.0/783.99);
kchen7 1:b0962a8bcc6d 45 }else if (count == 5){
kchen7 1:b0962a8bcc6d 46 speaker.period(1.0/880.0);
kchen7 1:b0962a8bcc6d 47 }else if (count == 6){
kchen7 1:b0962a8bcc6d 48 speaker.period(1.0/987.77);
kchen7 1:b0962a8bcc6d 49 }else if (count == 7){
kchen7 1:b0962a8bcc6d 50 speaker.period(1.0/1040.50);
kchen7 1:b0962a8bcc6d 51 }
kchen7 0:fa9e77516ba6 52 speaker = 0.5;
kchen7 0:fa9e77516ba6 53 wait(0.2);
kchen7 0:fa9e77516ba6 54 speaker = 0;
kchen7 1:b0962a8bcc6d 55 count++;
kchen7 1:b0962a8bcc6d 56 if (count == 8) {count = 0;}
kchen7 0:fa9e77516ba6 57 }
kchen7 0:fa9e77516ba6 58 int main() {
kchen7 0:fa9e77516ba6 59 switchPressed = false;
kchen7 0:fa9e77516ba6 60 mode = 0;
kchen7 1:b0962a8bcc6d 61 bool needNote = true;
kchen7 1:b0962a8bcc6d 62 ledC = 1; ledD = 1; ledE = 1; ledF = 1; ledG = 1;
kchen7 0:fa9e77516ba6 63 while(1) {
kchen7 0:fa9e77516ba6 64 switchModeCheck();
kchen7 0:fa9e77516ba6 65
kchen7 0:fa9e77516ba6 66 if (mode == 0) {
kchen7 0:fa9e77516ba6 67 if (butC == 1) {
kchen7 0:fa9e77516ba6 68 ledC = 0;
kchen7 0:fa9e77516ba6 69 cycleSound();
kchen7 0:fa9e77516ba6 70 } else {
kchen7 1:b0962a8bcc6d 71 ledC = 1;
kchen7 0:fa9e77516ba6 72 }
kchen7 0:fa9e77516ba6 73 if (butD == 1) {
kchen7 0:fa9e77516ba6 74 ledD = 0;
kchen7 0:fa9e77516ba6 75 cycleSound();
kchen7 0:fa9e77516ba6 76 } else {
kchen7 0:fa9e77516ba6 77 ledD = 1;
kchen7 0:fa9e77516ba6 78 }
kchen7 0:fa9e77516ba6 79 if (butE == 1) {
kchen7 0:fa9e77516ba6 80 ledE = 0;
kchen7 0:fa9e77516ba6 81 cycleSound();
kchen7 0:fa9e77516ba6 82 } else {
kchen7 0:fa9e77516ba6 83 ledE = 1;
kchen7 0:fa9e77516ba6 84 }
kchen7 0:fa9e77516ba6 85 if (butF == 1) {
kchen7 0:fa9e77516ba6 86 ledF = 0;
kchen7 0:fa9e77516ba6 87 cycleSound();
kchen7 0:fa9e77516ba6 88 } else {
kchen7 0:fa9e77516ba6 89 ledF = 1;
kchen7 0:fa9e77516ba6 90 }
kchen7 0:fa9e77516ba6 91 if (butG == 1) {
kchen7 0:fa9e77516ba6 92 ledG = 0;
kchen7 0:fa9e77516ba6 93 cycleSound();
kchen7 0:fa9e77516ba6 94 } else {
kchen7 0:fa9e77516ba6 95 ledG = 1;
kchen7 0:fa9e77516ba6 96 }
kchen7 0:fa9e77516ba6 97 }
kchen7 0:fa9e77516ba6 98
kchen7 0:fa9e77516ba6 99 if (mode == 1) {
kchen7 1:b0962a8bcc6d 100 int random = rand() % 5;
kchen7 1:b0962a8bcc6d 101 if (needNote) {
kchen7 1:b0962a8bcc6d 102 needNote = false;
kchen7 1:b0962a8bcc6d 103 if (random == 0) {
kchen7 1:b0962a8bcc6d 104 ledC = 0;
kchen7 1:b0962a8bcc6d 105 } else if (random == 1) {
kchen7 1:b0962a8bcc6d 106 ledD = 0;
kchen7 1:b0962a8bcc6d 107 } else if (random == 2) {
kchen7 1:b0962a8bcc6d 108 ledE = 0;
kchen7 1:b0962a8bcc6d 109 } else if (random == 3) {
kchen7 1:b0962a8bcc6d 110 ledF = 0;
kchen7 1:b0962a8bcc6d 111 } else if (random == 4) {
kchen7 1:b0962a8bcc6d 112 ledG = 0;
kchen7 1:b0962a8bcc6d 113 }
kchen7 1:b0962a8bcc6d 114 }
kchen7 1:b0962a8bcc6d 115 if (butC == 1 && ledC == 0) {
kchen7 1:b0962a8bcc6d 116 cycleSound();
kchen7 1:b0962a8bcc6d 117 ledC = 1;
kchen7 1:b0962a8bcc6d 118 needNote = true;
kchen7 1:b0962a8bcc6d 119 } else if (butD == 1 && ledD == 0) {
kchen7 1:b0962a8bcc6d 120 ledD = 1;
kchen7 1:b0962a8bcc6d 121 cycleSound();
kchen7 1:b0962a8bcc6d 122 needNote = true;
kchen7 1:b0962a8bcc6d 123 } else if (butE == 1 && ledE == 0) {
kchen7 1:b0962a8bcc6d 124 ledE = 1;
kchen7 1:b0962a8bcc6d 125 cycleSound();
kchen7 1:b0962a8bcc6d 126 needNote = true;
kchen7 1:b0962a8bcc6d 127 } else if (butF == 1 && ledF == 0) {
kchen7 1:b0962a8bcc6d 128 ledF = 1;
kchen7 1:b0962a8bcc6d 129 cycleSound();
kchen7 1:b0962a8bcc6d 130 needNote = true;
kchen7 1:b0962a8bcc6d 131 } else if (butG == 1 && ledG == 0) {
kchen7 1:b0962a8bcc6d 132 ledG = 1;
kchen7 1:b0962a8bcc6d 133 cycleSound();
kchen7 1:b0962a8bcc6d 134 needNote = true;
kchen7 1:b0962a8bcc6d 135 }
kchen7 1:b0962a8bcc6d 136
kchen7 0:fa9e77516ba6 137
kchen7 0:fa9e77516ba6 138
kchen7 0:fa9e77516ba6 139
kchen7 0:fa9e77516ba6 140
kchen7 1:b0962a8bcc6d 141 }
kchen7 0:fa9e77516ba6 142 }
kchen7 1:b0962a8bcc6d 143 }