Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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
1.7.2