![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Input text while you make music
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "PinDetect.h" 00003 00004 PinDetect key1(D2, PullUp); 00005 PinDetect key2(D3, PullUp); 00006 PinDetect key3(D4, PullUp); 00007 PinDetect key4(D5, PullUp); 00008 PinDetect key5(D6, PullUp); 00009 PinDetect key6(D7, PullUp); 00010 PinDetect key7(D8, PullUp); 00011 DigitalOut myled(LED1); 00012 00013 Serial pc(USBTX, USBRX); 00014 00015 int fingers[6] = {0,0,0,0,0,0}; 00016 int enter; 00017 00018 int notes[6] = {2,3,4,5,6,7}; 00019 00020 void key1PressedHeld( void ) { 00021 enter = 1; 00022 } 00023 00024 void key1Released( void ) { 00025 enter = 0; 00026 } 00027 00028 void key2PressedHeld( void ) { 00029 fingers[0] = 1; 00030 } 00031 00032 void key2Released( void ) { 00033 fingers[0] = 0; 00034 } 00035 00036 void key3PressedHeld( void ) { 00037 fingers[1] = 1; 00038 } 00039 00040 void key3Released( void ) { 00041 fingers[1] = 0; 00042 } 00043 00044 void key4PressedHeld( void ) { 00045 fingers[2] = 1; 00046 } 00047 00048 void key4Released( void ) { 00049 fingers[2] = 0; 00050 } 00051 00052 void key5PressedHeld( void ) { 00053 fingers[3] = 1; 00054 } 00055 00056 void key5Released( void ) { 00057 fingers[3] = 0; 00058 } 00059 00060 void key6PressedHeld( void ) { 00061 fingers[4] = 1; 00062 } 00063 00064 void key6Released( void ) { 00065 fingers[4] = 0; 00066 } 00067 00068 void key7PressedHeld( void ) { 00069 fingers[5] = 1; 00070 } 00071 00072 void key7Released( void ) { 00073 fingers[5] = 0; 00074 } 00075 int note; 00076 00077 int noteassign(int fingers) { 00078 if (fingers == {1,1,1,1,1,1}) 00079 note = 2; 00080 else if (fingers == {0,1,1,1,1,1}) 00081 note = 3; 00082 else if (fingers == {0,0,1,1,1,1}) 00083 note = 4; 00084 else if (fingers == {0,0,0,1,1,1}) 00085 note = 5; 00086 else if (fingers == {0,0,0,0,1,1}) 00087 note = 6; 00088 else if (fingers == {0,0,0,0,0,1}) 00089 note = 7; 00090 return note 00091 } 00092 00093 int notesplayed[2] = {0,0}; 00094 00095 int notescurr(int note) { 00096 notesplayed[0] = notesplayed[1]; 00097 notesplayed[1] = note; 00098 } 00099 00100 void key1PressedHeld(int notesplayed) 00101 { 00102 if (notescurr == {2,0}) 00103 pc.printf("E"); 00104 else if (notescurr == {3,0}) 00105 pc.printf("T"); 00106 else if (notescurr == {4,0}) 00107 pc.printf("A"); 00108 else if (notescurr == {5,0}) 00109 pc.printf("O"); 00110 else if (notescurr == {6,0}) 00111 pc.printf("I"); 00112 else if (notescurr == {7,0}) 00113 pc.printf("N"); 00114 else if (notescurr == {2,3}) 00115 pc.printf("S"); 00116 else if (notescurr == {2,4}) 00117 pc.printf("H"); 00118 else if (notescurr == {2,5}) 00119 pc.printf("R"); 00120 else if (notescurr == {2,6}) 00121 pc.printf("D"); 00122 else if (notescurr == {2,7}) 00123 pc.printf("L"); 00124 else if (notescurr == {3,2}) 00125 pc.printf("C"); 00126 else if (notescurr == {3,4}) 00127 pc.printf("U"); 00128 else if (notescurr == {3,5}) 00129 pc.printf("M"); 00130 else if (notescurr == {3,6}) 00131 pc.printf("W"); 00132 else if (notescurr == {3,7}) 00133 pc.printf("F"); 00134 else if (notescurr == {4,2}) 00135 pc.printf("G"); 00136 else if (notescurr == {4,3}) 00137 pc.printf("Y"); 00138 else if (notescurr == {4,5}) 00139 pc.printf("P"); 00140 else if (notescurr == {4,6}) 00141 pc.printf("B"); 00142 else if (notescurr == {4,7}) 00143 pc.printf("V"); 00144 else if (notescurr == {5,2}) 00145 pc.printf("K"); 00146 else if (notescurr == {5,3}) 00147 pc.printf("J"); 00148 else if (notescurr == {5,4}) 00149 pc.printf("X"); 00150 else if (notescurr == {5,6}) 00151 pc.printf("Q"); 00152 else if (notescurr == {5,7}) 00153 pc.printf("Z"); 00154 else if (notescurr == {0,0}) 00155 pc.printf(" "); 00156 }; 00157 00158 void key1Released(void) { 00159 notesplayed[0] = 0; 00160 notesplayed[1] = 0; 00161 } 00162 00163 int main() { 00164 key1.attach_asserted_held( &key1PressedHeld ); 00165 key2.attach_asserted_held( &key2PressedHeld ); 00166 key3.attach_asserted_held( &key3PressedHeld ); 00167 key4.attach_asserted_held( &key4PressedHeld ); 00168 key5.attach_asserted_held( &key5PressedHeld ); 00169 key6.attach_asserted_held( &key6PressedHeld ); 00170 key7.attach_asserted_held( &key7PressedHeld ); 00171 key1.attach_deasserted( &key1Released ); 00172 key2.attach_deasserted( &key2Released ); 00173 key3.attach_deasserted( &key3Released ); 00174 key4.attach_deasserted( &key4Released ); 00175 key5.attach_deasserted( &key5Released ); 00176 key6.attach_deasserted( &key6Released ); 00177 key7.attach_deasserted( &key7Released ); 00178 00179 }
Generated on Sun Jul 17 2022 23:34:37 by
![doxygen](doxygen.png)