
Microprocessor and embedded system Final Project (Music/61) 60010194 Chanathip Pongskul 60010454 Tantep Sinjankhom 60010551 Netiwat Akarachaimongkol
Dependencies: TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
main.cpp@6:d6d4f48fc2e1, 2019-05-06 (annotated)
- Committer:
- Tantep
- Date:
- Mon May 06 07:11:21 2019 +0000
- Revision:
- 6:d6d4f48fc2e1
- Parent:
- 5:7db99d28bc36
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chana_jo | 0:d2b5a1e8fc0c | 1 | #include "mbed.h" |
chana_jo | 0:d2b5a1e8fc0c | 2 | #include "TS_DISCO_F746NG.h" |
chana_jo | 0:d2b5a1e8fc0c | 3 | #include "LCD_DISCO_F746NG.h" |
Tantep | 1:19138bfe23c9 | 4 | #include"sn44.h" |
Tantep | 1:19138bfe23c9 | 5 | #include"cl44.h" |
Tantep | 1:19138bfe23c9 | 6 | #include"clhh44.h" |
Tantep | 1:19138bfe23c9 | 7 | #include"ophh44.h" |
Tantep | 1:19138bfe23c9 | 8 | #include"kick44.h" |
chana_jo | 0:d2b5a1e8fc0c | 9 | |
Tantep | 6:d6d4f48fc2e1 | 10 | |
Tantep | 1:19138bfe23c9 | 11 | #define sample_freq 16000.0 |
chana_jo | 0:d2b5a1e8fc0c | 12 | DigitalOut led(LED1); |
chana_jo | 0:d2b5a1e8fc0c | 13 | LCD_DISCO_F746NG lcd; |
chana_jo | 0:d2b5a1e8fc0c | 14 | TS_DISCO_F746NG ts; |
chana_jo | 0:d2b5a1e8fc0c | 15 | AnalogIn tempoknob(A1); |
chana_jo | 0:d2b5a1e8fc0c | 16 | AnalogIn volumeknob(A0); |
Tantep | 1:19138bfe23c9 | 17 | PwmOut speaker(D1); |
chana_jo | 0:d2b5a1e8fc0c | 18 | Serial pc(USBTX, USBRX); |
chana_jo | 2:58378cb7e76f | 19 | Ticker re,er,rr,ee,sn44tick,cl44tick,clhh44tick,ophh44tick,kick44tick,testprint;//timer ไว้ attach ตอนplay audio กับไว้รับปุ่ม |
Tantep | 6:d6d4f48fc2e1 | 20 | //Timeout re; |
chana_jo | 0:d2b5a1e8fc0c | 21 | |
chana_jo | 4:ec0ff5b355e8 | 22 | int checkplay=0,beat[5][8],page=1; |
chana_jo | 4:ec0ff5b355e8 | 23 | int tracking=1; |
Tantep | 1:19138bfe23c9 | 24 | char currentpage[50],volumechar[50],strvolume[50],strtempo[50],tempostr[50]; //สร้างไว้ให้เขียนอักษรได้เฉยๆ |
chana_jo | 0:d2b5a1e8fc0c | 25 | float volume,tempo; |
chana_jo | 2:58378cb7e76f | 26 | float speed; //tempo converted to sec |
Tantep | 6:d6d4f48fc2e1 | 27 | int h,i,j,k,l,m; |
chana_jo | 0:d2b5a1e8fc0c | 28 | void test(void); //function for touchscreen |
chana_jo | 0:d2b5a1e8fc0c | 29 | void play(void);// function for play |
chana_jo | 0:d2b5a1e8fc0c | 30 | void screen(void);//function for display |
chana_jo | 0:d2b5a1e8fc0c | 31 | void knob(void);// read knob |
chana_jo | 2:58378cb7e76f | 32 | void testbeat1(void); |
chana_jo | 2:58378cb7e76f | 33 | void testbeat2(void); |
chana_jo | 4:ec0ff5b355e8 | 34 | float tempo2,volume2; |
chana_jo | 0:d2b5a1e8fc0c | 35 | |
chana_jo | 0:d2b5a1e8fc0c | 36 | int main() |
chana_jo | 0:d2b5a1e8fc0c | 37 | { |
chana_jo | 0:d2b5a1e8fc0c | 38 | lcd.Clear(LCD_COLOR_BLUE); |
chana_jo | 0:d2b5a1e8fc0c | 39 | ee.attach(&screen, 0.03); |
Tantep | 6:d6d4f48fc2e1 | 40 | re.attach(&play,0.45);//เล่นตามtempo |
chana_jo | 0:d2b5a1e8fc0c | 41 | er.attach(&test, 0.25);//กดช้ากดเร็วแล้วแต่ |
chana_jo | 4:ec0ff5b355e8 | 42 | rr.attach(&knob,0.5);//readknob ทุก0.5 |
chana_jo | 2:58378cb7e76f | 43 | |
Tantep | 1:19138bfe23c9 | 44 | |
chana_jo | 0:d2b5a1e8fc0c | 45 | } |
chana_jo | 0:d2b5a1e8fc0c | 46 | |
Tantep | 1:19138bfe23c9 | 47 | |
Tantep | 1:19138bfe23c9 | 48 | //SAMPLE && SAMPLE PLAY FUNCTION |
Tantep | 1:19138bfe23c9 | 49 | |
Tantep | 1:19138bfe23c9 | 50 | void sn44_sample () |
Tantep | 1:19138bfe23c9 | 51 | { |
Tantep | 1:19138bfe23c9 | 52 | |
chana_jo | 2:58378cb7e76f | 53 | speaker = sn44_data[h]/16777215.0;//scale to 0.0 to 1.0 for PWM |
chana_jo | 2:58378cb7e76f | 54 | h++; |
chana_jo | 2:58378cb7e76f | 55 | if (h>= num_sn44) { |
chana_jo | 2:58378cb7e76f | 56 | h = 0; |
Tantep | 1:19138bfe23c9 | 57 | sn44tick.detach(); |
chana_jo | 2:58378cb7e76f | 58 | //led = 0; |
Tantep | 1:19138bfe23c9 | 59 | } |
Tantep | 1:19138bfe23c9 | 60 | } |
Tantep | 1:19138bfe23c9 | 61 | void cl44_sample () |
Tantep | 1:19138bfe23c9 | 62 | { |
Tantep | 1:19138bfe23c9 | 63 | |
Tantep | 1:19138bfe23c9 | 64 | speaker = cl44_data[i]/16777215.0;//scale to 0.0 to 1.0 for PWM |
Tantep | 1:19138bfe23c9 | 65 | i++; |
Tantep | 1:19138bfe23c9 | 66 | if (i>= num_cl44) { |
Tantep | 1:19138bfe23c9 | 67 | i = 0; |
Tantep | 1:19138bfe23c9 | 68 | cl44tick.detach(); |
chana_jo | 2:58378cb7e76f | 69 | //led = 0; |
Tantep | 1:19138bfe23c9 | 70 | } |
Tantep | 1:19138bfe23c9 | 71 | } |
Tantep | 1:19138bfe23c9 | 72 | void clhh44_sample () |
Tantep | 1:19138bfe23c9 | 73 | { |
Tantep | 1:19138bfe23c9 | 74 | |
chana_jo | 2:58378cb7e76f | 75 | speaker = clhh44_data[j]/16777215.0;//scale to 0.0 to 1.0 for PWM |
chana_jo | 2:58378cb7e76f | 76 | j++; |
chana_jo | 2:58378cb7e76f | 77 | if (j>= num_clhh44) { |
chana_jo | 2:58378cb7e76f | 78 | j = 0; |
Tantep | 1:19138bfe23c9 | 79 | clhh44tick.detach(); |
chana_jo | 2:58378cb7e76f | 80 | //led = 0; |
Tantep | 1:19138bfe23c9 | 81 | } |
Tantep | 1:19138bfe23c9 | 82 | } |
Tantep | 1:19138bfe23c9 | 83 | void ophh44_sample () |
Tantep | 1:19138bfe23c9 | 84 | { |
Tantep | 1:19138bfe23c9 | 85 | |
chana_jo | 2:58378cb7e76f | 86 | speaker = ophh44_data[k]/16777215.0;//scale to 0.0 to 1.0 for PWM |
chana_jo | 2:58378cb7e76f | 87 | k++; |
chana_jo | 2:58378cb7e76f | 88 | if (k>= num_ophh44) { |
chana_jo | 2:58378cb7e76f | 89 | k = 0; |
Tantep | 1:19138bfe23c9 | 90 | ophh44tick.detach(); |
chana_jo | 2:58378cb7e76f | 91 | //led = 0; |
Tantep | 1:19138bfe23c9 | 92 | } |
Tantep | 1:19138bfe23c9 | 93 | } |
Tantep | 1:19138bfe23c9 | 94 | void kick44_sample () |
Tantep | 1:19138bfe23c9 | 95 | { |
chana_jo | 2:58378cb7e76f | 96 | speaker = kick44_data[l]/16777215.0;//scale to 0.0 to 1.0 for PWM |
chana_jo | 2:58378cb7e76f | 97 | l++; |
chana_jo | 2:58378cb7e76f | 98 | if (l>= num_kick44) { |
chana_jo | 2:58378cb7e76f | 99 | l = 0; |
Tantep | 1:19138bfe23c9 | 100 | kick44tick.detach(); |
chana_jo | 2:58378cb7e76f | 101 | //led = 0; |
Tantep | 1:19138bfe23c9 | 102 | } |
Tantep | 1:19138bfe23c9 | 103 | } |
Tantep | 6:d6d4f48fc2e1 | 104 | /*void hand_sample () |
Tantep | 6:d6d4f48fc2e1 | 105 | { |
Tantep | 6:d6d4f48fc2e1 | 106 | speaker = hand_data[m]/16777215.0;//scale to 0.0 to 1.0 for PWM |
Tantep | 6:d6d4f48fc2e1 | 107 | m++; |
Tantep | 6:d6d4f48fc2e1 | 108 | if (m>= num_hand) { |
Tantep | 6:d6d4f48fc2e1 | 109 | m = 0; |
Tantep | 6:d6d4f48fc2e1 | 110 | handtick.detach(); |
Tantep | 6:d6d4f48fc2e1 | 111 | //led = 0; |
Tantep | 6:d6d4f48fc2e1 | 112 | } |
Tantep | 6:d6d4f48fc2e1 | 113 | }*/ |
chana_jo | 3:3a2c11f459c4 | 114 | ///////////////////////////////////////////////////////////////////////////// PLAY PART ////////////////////////////////////////////// |
Tantep | 1:19138bfe23c9 | 115 | void playsnare() |
Tantep | 1:19138bfe23c9 | 116 | { |
Tantep | 5:7db99d28bc36 | 117 | speaker = volume*(sn44_data[h]/16777215.0);//scale to 0.0 to 1.0 for PWM |
chana_jo | 3:3a2c11f459c4 | 118 | h++; |
Tantep | 6:d6d4f48fc2e1 | 119 | speaker.period(1.0/88200.0); //PWM freq >10X audio sample rate |
Tantep | 1:19138bfe23c9 | 120 | |
chana_jo | 3:3a2c11f459c4 | 121 | if (h>= num_sn44) { |
chana_jo | 3:3a2c11f459c4 | 122 | h = 0; |
chana_jo | 3:3a2c11f459c4 | 123 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 124 | } |
Tantep | 1:19138bfe23c9 | 125 | |
Tantep | 1:19138bfe23c9 | 126 | } |
chana_jo | 3:3a2c11f459c4 | 127 | |
Tantep | 1:19138bfe23c9 | 128 | void playkick() |
Tantep | 1:19138bfe23c9 | 129 | { |
Tantep | 5:7db99d28bc36 | 130 | speaker = volume*(kick44_data[l]/16777215.0);//scale to 0.0 to 1.0 for PWM |
chana_jo | 3:3a2c11f459c4 | 131 | l++; |
Tantep | 6:d6d4f48fc2e1 | 132 | speaker.period(1.0/88200.0); //PWM freq >10X audio sample rate |
chana_jo | 3:3a2c11f459c4 | 133 | |
chana_jo | 3:3a2c11f459c4 | 134 | if (l>= num_kick44) { |
chana_jo | 3:3a2c11f459c4 | 135 | l = 0; |
chana_jo | 3:3a2c11f459c4 | 136 | kick44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 137 | } |
Tantep | 1:19138bfe23c9 | 138 | |
Tantep | 1:19138bfe23c9 | 139 | } |
Tantep | 1:19138bfe23c9 | 140 | void playclap() |
Tantep | 1:19138bfe23c9 | 141 | { |
Tantep | 5:7db99d28bc36 | 142 | speaker = volume*(cl44_data[i]/16777215.0);//scale to 0.0 to 1.0 for PWM |
chana_jo | 3:3a2c11f459c4 | 143 | i++; |
Tantep | 6:d6d4f48fc2e1 | 144 | speaker.period(1.0/96000.0); //PWM freq >10X audio sample rate |
Tantep | 1:19138bfe23c9 | 145 | |
chana_jo | 3:3a2c11f459c4 | 146 | if (i>= num_cl44) { |
chana_jo | 3:3a2c11f459c4 | 147 | i = 0; |
chana_jo | 3:3a2c11f459c4 | 148 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 149 | } |
Tantep | 1:19138bfe23c9 | 150 | |
Tantep | 1:19138bfe23c9 | 151 | } |
chana_jo | 3:3a2c11f459c4 | 152 | |
Tantep | 1:19138bfe23c9 | 153 | void playclhh() |
Tantep | 1:19138bfe23c9 | 154 | { |
Tantep | 5:7db99d28bc36 | 155 | speaker = volume*(clhh44_data[j]/16777215.0);//scale to 0.0 to 1.0 for PWM |
chana_jo | 3:3a2c11f459c4 | 156 | j++; |
Tantep | 6:d6d4f48fc2e1 | 157 | speaker.period(1.0/96000.0); //PWM freq >10X audio sample rate |
Tantep | 1:19138bfe23c9 | 158 | |
chana_jo | 3:3a2c11f459c4 | 159 | if (j>= num_clhh44) { |
chana_jo | 3:3a2c11f459c4 | 160 | j = 0; |
chana_jo | 3:3a2c11f459c4 | 161 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 162 | } |
chana_jo | 3:3a2c11f459c4 | 163 | |
chana_jo | 3:3a2c11f459c4 | 164 | } |
Tantep | 1:19138bfe23c9 | 165 | |
Tantep | 1:19138bfe23c9 | 166 | void playophh() |
Tantep | 1:19138bfe23c9 | 167 | { |
Tantep | 5:7db99d28bc36 | 168 | speaker = volume*(ophh44_data[k]/16777215.0);//scale to 0.0 to 1.0 for PWM |
chana_jo | 3:3a2c11f459c4 | 169 | k++; |
Tantep | 6:d6d4f48fc2e1 | 170 | speaker.period(1.0/96000.0); //PWM freq >10X audio sample rate |
Tantep | 1:19138bfe23c9 | 171 | |
chana_jo | 3:3a2c11f459c4 | 172 | if (k>= num_ophh44) { |
chana_jo | 3:3a2c11f459c4 | 173 | k = 0; |
chana_jo | 3:3a2c11f459c4 | 174 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 175 | } |
chana_jo | 3:3a2c11f459c4 | 176 | |
Tantep | 1:19138bfe23c9 | 177 | } |
Tantep | 6:d6d4f48fc2e1 | 178 | |
Tantep | 6:d6d4f48fc2e1 | 179 | |
Tantep | 6:d6d4f48fc2e1 | 180 | |
chana_jo | 2:58378cb7e76f | 181 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
chana_jo | 0:d2b5a1e8fc0c | 182 | void play() |
chana_jo | 0:d2b5a1e8fc0c | 183 | { |
chana_jo | 2:58378cb7e76f | 184 | if(checkplay==1)//led blink when button play is on |
chana_jo | 2:58378cb7e76f | 185 | { |
chana_jo | 4:ec0ff5b355e8 | 186 | pc.printf("current beat : %d \n\r",tracking); |
chana_jo | 4:ec0ff5b355e8 | 187 | |
chana_jo | 2:58378cb7e76f | 188 | if(tracking==1) |
chana_jo | 2:58378cb7e76f | 189 | { |
chana_jo | 3:3a2c11f459c4 | 190 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 191 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 192 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 193 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 194 | kick44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 195 | if(beat[0][0]==1) |
chana_jo | 3:3a2c11f459c4 | 196 | { |
chana_jo | 3:3a2c11f459c4 | 197 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 198 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 199 | } |
chana_jo | 3:3a2c11f459c4 | 200 | if(beat[1][0]==1) |
chana_jo | 3:3a2c11f459c4 | 201 | { |
chana_jo | 3:3a2c11f459c4 | 202 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 203 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 204 | } |
chana_jo | 3:3a2c11f459c4 | 205 | if(beat[2][0]==1) |
chana_jo | 3:3a2c11f459c4 | 206 | { |
chana_jo | 3:3a2c11f459c4 | 207 | pc.printf("3"); |
chana_jo | 3:3a2c11f459c4 | 208 | cl44tick.attach(&playclap,1.0 /22050); |
chana_jo | 3:3a2c11f459c4 | 209 | } |
chana_jo | 3:3a2c11f459c4 | 210 | if(beat[3][0]==1) |
chana_jo | 3:3a2c11f459c4 | 211 | { |
chana_jo | 3:3a2c11f459c4 | 212 | pc.printf("4"); |
chana_jo | 3:3a2c11f459c4 | 213 | clhh44tick.attach(&playclhh,1.0 / 33075); |
chana_jo | 3:3a2c11f459c4 | 214 | } |
chana_jo | 3:3a2c11f459c4 | 215 | if(beat[4][0]==1) |
chana_jo | 3:3a2c11f459c4 | 216 | { |
chana_jo | 3:3a2c11f459c4 | 217 | pc.printf("5"); |
chana_jo | 3:3a2c11f459c4 | 218 | ophh44tick.attach(&playophh,1.0 / 33075); |
chana_jo | 3:3a2c11f459c4 | 219 | } |
chana_jo | 3:3a2c11f459c4 | 220 | |
chana_jo | 2:58378cb7e76f | 221 | } |
chana_jo | 2:58378cb7e76f | 222 | else if(tracking==2) |
chana_jo | 2:58378cb7e76f | 223 | { |
chana_jo | 3:3a2c11f459c4 | 224 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 225 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 226 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 227 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 228 | kick44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 229 | if(beat[0][1]==1) |
chana_jo | 3:3a2c11f459c4 | 230 | { |
chana_jo | 4:ec0ff5b355e8 | 231 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 232 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 233 | } |
chana_jo | 3:3a2c11f459c4 | 234 | if(beat[1][1]==1) |
chana_jo | 3:3a2c11f459c4 | 235 | { |
chana_jo | 4:ec0ff5b355e8 | 236 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 237 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 238 | } |
chana_jo | 3:3a2c11f459c4 | 239 | if(beat[2][1]==1) |
chana_jo | 3:3a2c11f459c4 | 240 | { |
chana_jo | 4:ec0ff5b355e8 | 241 | pc.printf("3"); |
chana_jo | 3:3a2c11f459c4 | 242 | cl44tick.attach(&playclap,1.0 /22050); |
chana_jo | 3:3a2c11f459c4 | 243 | } |
chana_jo | 3:3a2c11f459c4 | 244 | if(beat[3][1]==1) |
chana_jo | 3:3a2c11f459c4 | 245 | { |
chana_jo | 4:ec0ff5b355e8 | 246 | pc.printf("4"); |
chana_jo | 3:3a2c11f459c4 | 247 | clhh44tick.attach(&playclhh,1.0 / 33075); |
chana_jo | 3:3a2c11f459c4 | 248 | } |
chana_jo | 3:3a2c11f459c4 | 249 | if(beat[4][1]==1) |
chana_jo | 3:3a2c11f459c4 | 250 | { |
chana_jo | 4:ec0ff5b355e8 | 251 | pc.printf("5"); |
chana_jo | 3:3a2c11f459c4 | 252 | ophh44tick.attach(&playophh,1.0 / 33075); |
chana_jo | 3:3a2c11f459c4 | 253 | } |
chana_jo | 2:58378cb7e76f | 254 | |
chana_jo | 2:58378cb7e76f | 255 | |
chana_jo | 2:58378cb7e76f | 256 | } |
chana_jo | 2:58378cb7e76f | 257 | else if(tracking==3) |
chana_jo | 2:58378cb7e76f | 258 | { |
chana_jo | 3:3a2c11f459c4 | 259 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 260 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 261 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 262 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 263 | kick44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 264 | if(beat[0][2]==1) |
chana_jo | 3:3a2c11f459c4 | 265 | { |
chana_jo | 4:ec0ff5b355e8 | 266 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 267 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 268 | } |
chana_jo | 3:3a2c11f459c4 | 269 | if(beat[1][2]==1) |
chana_jo | 3:3a2c11f459c4 | 270 | { |
chana_jo | 4:ec0ff5b355e8 | 271 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 272 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 273 | } |
chana_jo | 3:3a2c11f459c4 | 274 | if(beat[2][2]==1) |
chana_jo | 3:3a2c11f459c4 | 275 | { |
chana_jo | 4:ec0ff5b355e8 | 276 | pc.printf("3"); |
Tantep | 6:d6d4f48fc2e1 | 277 | cl44tick.attach(&playclap,1.0 /96000); |
chana_jo | 3:3a2c11f459c4 | 278 | } |
chana_jo | 3:3a2c11f459c4 | 279 | if(beat[3][2]==1) |
chana_jo | 3:3a2c11f459c4 | 280 | { |
chana_jo | 4:ec0ff5b355e8 | 281 | pc.printf("4"); |
Tantep | 6:d6d4f48fc2e1 | 282 | clhh44tick.attach(&playclhh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 283 | } |
chana_jo | 3:3a2c11f459c4 | 284 | if(beat[4][2]==1) |
chana_jo | 3:3a2c11f459c4 | 285 | { |
chana_jo | 4:ec0ff5b355e8 | 286 | pc.printf("5"); |
Tantep | 6:d6d4f48fc2e1 | 287 | ophh44tick.attach(&playophh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 288 | } |
chana_jo | 2:58378cb7e76f | 289 | |
chana_jo | 2:58378cb7e76f | 290 | |
chana_jo | 2:58378cb7e76f | 291 | } |
chana_jo | 2:58378cb7e76f | 292 | else if(tracking==4) |
chana_jo | 2:58378cb7e76f | 293 | { |
chana_jo | 3:3a2c11f459c4 | 294 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 295 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 296 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 297 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 298 | kick44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 299 | if(beat[0][3]==1) |
chana_jo | 3:3a2c11f459c4 | 300 | { |
chana_jo | 4:ec0ff5b355e8 | 301 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 302 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 303 | } |
chana_jo | 3:3a2c11f459c4 | 304 | if(beat[1][3]==1) |
chana_jo | 3:3a2c11f459c4 | 305 | { |
chana_jo | 4:ec0ff5b355e8 | 306 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 307 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 308 | } |
chana_jo | 3:3a2c11f459c4 | 309 | if(beat[2][3]==1) |
chana_jo | 3:3a2c11f459c4 | 310 | { |
chana_jo | 4:ec0ff5b355e8 | 311 | pc.printf("3"); |
Tantep | 6:d6d4f48fc2e1 | 312 | cl44tick.attach(&playclap,1.0 /96000); |
chana_jo | 3:3a2c11f459c4 | 313 | } |
chana_jo | 3:3a2c11f459c4 | 314 | if(beat[3][3]==1) |
chana_jo | 3:3a2c11f459c4 | 315 | { |
chana_jo | 4:ec0ff5b355e8 | 316 | pc.printf("4"); |
Tantep | 6:d6d4f48fc2e1 | 317 | clhh44tick.attach(&playclhh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 318 | } |
chana_jo | 3:3a2c11f459c4 | 319 | if(beat[4][3]==1) |
chana_jo | 3:3a2c11f459c4 | 320 | { |
chana_jo | 4:ec0ff5b355e8 | 321 | pc.printf("5"); |
Tantep | 6:d6d4f48fc2e1 | 322 | ophh44tick.attach(&playophh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 323 | } |
chana_jo | 2:58378cb7e76f | 324 | |
chana_jo | 2:58378cb7e76f | 325 | |
chana_jo | 2:58378cb7e76f | 326 | } |
chana_jo | 2:58378cb7e76f | 327 | else if(tracking==5) |
chana_jo | 2:58378cb7e76f | 328 | { |
chana_jo | 3:3a2c11f459c4 | 329 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 330 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 331 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 332 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 333 | kick44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 334 | if(beat[0][4]==1) |
chana_jo | 3:3a2c11f459c4 | 335 | { |
chana_jo | 4:ec0ff5b355e8 | 336 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 337 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 338 | } |
chana_jo | 3:3a2c11f459c4 | 339 | if(beat[1][4]==1) |
chana_jo | 3:3a2c11f459c4 | 340 | { |
chana_jo | 4:ec0ff5b355e8 | 341 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 342 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 343 | } |
chana_jo | 3:3a2c11f459c4 | 344 | if(beat[2][4]==1) |
chana_jo | 3:3a2c11f459c4 | 345 | { |
chana_jo | 4:ec0ff5b355e8 | 346 | pc.printf("3"); |
Tantep | 6:d6d4f48fc2e1 | 347 | cl44tick.attach(&playclap,1.0 /96000); |
chana_jo | 3:3a2c11f459c4 | 348 | } |
chana_jo | 3:3a2c11f459c4 | 349 | if(beat[3][4]==1) |
chana_jo | 3:3a2c11f459c4 | 350 | { |
chana_jo | 4:ec0ff5b355e8 | 351 | pc.printf("4"); |
Tantep | 6:d6d4f48fc2e1 | 352 | clhh44tick.attach(&playclhh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 353 | } |
chana_jo | 3:3a2c11f459c4 | 354 | if(beat[4][4]==1) |
chana_jo | 3:3a2c11f459c4 | 355 | { |
chana_jo | 4:ec0ff5b355e8 | 356 | pc.printf("5"); |
Tantep | 6:d6d4f48fc2e1 | 357 | ophh44tick.attach(&playophh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 358 | } |
chana_jo | 2:58378cb7e76f | 359 | |
chana_jo | 2:58378cb7e76f | 360 | |
chana_jo | 2:58378cb7e76f | 361 | } |
chana_jo | 2:58378cb7e76f | 362 | else if(tracking==6) |
chana_jo | 2:58378cb7e76f | 363 | { |
chana_jo | 3:3a2c11f459c4 | 364 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 365 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 366 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 367 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 368 | kick44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 369 | if(beat[0][5]==1) |
chana_jo | 3:3a2c11f459c4 | 370 | { |
chana_jo | 4:ec0ff5b355e8 | 371 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 372 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 373 | } |
chana_jo | 3:3a2c11f459c4 | 374 | if(beat[1][5]==1) |
chana_jo | 3:3a2c11f459c4 | 375 | { |
chana_jo | 4:ec0ff5b355e8 | 376 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 377 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 378 | } |
chana_jo | 3:3a2c11f459c4 | 379 | if(beat[2][5]==1) |
chana_jo | 3:3a2c11f459c4 | 380 | { |
chana_jo | 4:ec0ff5b355e8 | 381 | pc.printf("3"); |
Tantep | 6:d6d4f48fc2e1 | 382 | cl44tick.attach(&playclap,1.0 /96000); |
chana_jo | 3:3a2c11f459c4 | 383 | } |
chana_jo | 3:3a2c11f459c4 | 384 | if(beat[3][5]==1) |
chana_jo | 3:3a2c11f459c4 | 385 | { |
chana_jo | 4:ec0ff5b355e8 | 386 | pc.printf("4"); |
Tantep | 6:d6d4f48fc2e1 | 387 | clhh44tick.attach(&playclhh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 388 | } |
chana_jo | 3:3a2c11f459c4 | 389 | if(beat[4][5]==1) |
chana_jo | 3:3a2c11f459c4 | 390 | { |
chana_jo | 4:ec0ff5b355e8 | 391 | pc.printf("5"); |
Tantep | 6:d6d4f48fc2e1 | 392 | ophh44tick.attach(&playophh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 393 | } |
chana_jo | 2:58378cb7e76f | 394 | |
chana_jo | 2:58378cb7e76f | 395 | |
chana_jo | 2:58378cb7e76f | 396 | } |
chana_jo | 2:58378cb7e76f | 397 | else if(tracking==7) |
chana_jo | 2:58378cb7e76f | 398 | { |
chana_jo | 3:3a2c11f459c4 | 399 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 400 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 401 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 402 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 403 | kick44tick.detach(); |
chana_jo | 4:ec0ff5b355e8 | 404 | if(beat[0][6]==1) |
chana_jo | 3:3a2c11f459c4 | 405 | { |
chana_jo | 4:ec0ff5b355e8 | 406 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 407 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 408 | } |
chana_jo | 4:ec0ff5b355e8 | 409 | if(beat[1][6]==1) |
chana_jo | 3:3a2c11f459c4 | 410 | { |
chana_jo | 4:ec0ff5b355e8 | 411 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 412 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 413 | } |
chana_jo | 4:ec0ff5b355e8 | 414 | if(beat[2][6]==1) |
chana_jo | 3:3a2c11f459c4 | 415 | { |
chana_jo | 4:ec0ff5b355e8 | 416 | pc.printf("3"); |
Tantep | 6:d6d4f48fc2e1 | 417 | cl44tick.attach(&playclap,1.0 /96000); |
chana_jo | 3:3a2c11f459c4 | 418 | } |
chana_jo | 4:ec0ff5b355e8 | 419 | if(beat[3][6]==1) |
chana_jo | 3:3a2c11f459c4 | 420 | { |
chana_jo | 4:ec0ff5b355e8 | 421 | pc.printf("4"); |
Tantep | 6:d6d4f48fc2e1 | 422 | clhh44tick.attach(&playclhh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 423 | } |
chana_jo | 4:ec0ff5b355e8 | 424 | if(beat[4][6]==1) |
chana_jo | 3:3a2c11f459c4 | 425 | { |
chana_jo | 4:ec0ff5b355e8 | 426 | pc.printf("5"); |
Tantep | 6:d6d4f48fc2e1 | 427 | ophh44tick.attach(&playophh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 428 | } |
chana_jo | 2:58378cb7e76f | 429 | |
chana_jo | 2:58378cb7e76f | 430 | |
chana_jo | 2:58378cb7e76f | 431 | } |
chana_jo | 2:58378cb7e76f | 432 | else if(tracking==8) |
chana_jo | 2:58378cb7e76f | 433 | { |
chana_jo | 3:3a2c11f459c4 | 434 | sn44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 435 | cl44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 436 | clhh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 437 | ophh44tick.detach(); |
chana_jo | 3:3a2c11f459c4 | 438 | kick44tick.detach(); |
chana_jo | 4:ec0ff5b355e8 | 439 | if(beat[0][7]==1) |
chana_jo | 3:3a2c11f459c4 | 440 | { |
chana_jo | 4:ec0ff5b355e8 | 441 | pc.printf("1"); |
Tantep | 6:d6d4f48fc2e1 | 442 | kick44tick.attach(&playkick,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 443 | } |
chana_jo | 4:ec0ff5b355e8 | 444 | if(beat[1][7]==1) |
chana_jo | 3:3a2c11f459c4 | 445 | { |
chana_jo | 4:ec0ff5b355e8 | 446 | pc.printf("2"); |
Tantep | 6:d6d4f48fc2e1 | 447 | sn44tick.attach(&playsnare,1.0 / 88200); |
chana_jo | 3:3a2c11f459c4 | 448 | } |
chana_jo | 4:ec0ff5b355e8 | 449 | if(beat[2][7]==1) |
chana_jo | 3:3a2c11f459c4 | 450 | { |
chana_jo | 4:ec0ff5b355e8 | 451 | pc.printf("3"); |
Tantep | 6:d6d4f48fc2e1 | 452 | cl44tick.attach(&playclap,1.0 /96000); |
chana_jo | 3:3a2c11f459c4 | 453 | } |
chana_jo | 4:ec0ff5b355e8 | 454 | if(beat[3][7]==1) |
chana_jo | 3:3a2c11f459c4 | 455 | { |
chana_jo | 4:ec0ff5b355e8 | 456 | pc.printf("4"); |
Tantep | 6:d6d4f48fc2e1 | 457 | clhh44tick.attach(&playclhh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 458 | } |
chana_jo | 4:ec0ff5b355e8 | 459 | if(beat[4][7]==1) |
chana_jo | 3:3a2c11f459c4 | 460 | { |
chana_jo | 4:ec0ff5b355e8 | 461 | pc.printf("5"); |
Tantep | 6:d6d4f48fc2e1 | 462 | ophh44tick.attach(&playophh,1.0 / 96000); |
chana_jo | 3:3a2c11f459c4 | 463 | } |
chana_jo | 2:58378cb7e76f | 464 | |
chana_jo | 2:58378cb7e76f | 465 | |
chana_jo | 2:58378cb7e76f | 466 | } |
chana_jo | 4:ec0ff5b355e8 | 467 | if(tracking<8) |
chana_jo | 4:ec0ff5b355e8 | 468 | { |
chana_jo | 4:ec0ff5b355e8 | 469 | tracking=tracking+1; |
chana_jo | 4:ec0ff5b355e8 | 470 | } |
chana_jo | 4:ec0ff5b355e8 | 471 | else if(tracking==8) |
chana_jo | 4:ec0ff5b355e8 | 472 | { |
chana_jo | 4:ec0ff5b355e8 | 473 | tracking=1; |
chana_jo | 4:ec0ff5b355e8 | 474 | led=!led; |
chana_jo | 4:ec0ff5b355e8 | 475 | } |
chana_jo | 2:58378cb7e76f | 476 | |
chana_jo | 0:d2b5a1e8fc0c | 477 | } |
chana_jo | 2:58378cb7e76f | 478 | else if(checkplay==0)//led off |
chana_jo | 2:58378cb7e76f | 479 | { |
chana_jo | 2:58378cb7e76f | 480 | led=0; |
chana_jo | 2:58378cb7e76f | 481 | tracking=1; |
chana_jo | 2:58378cb7e76f | 482 | } |
chana_jo | 0:d2b5a1e8fc0c | 483 | |
chana_jo | 0:d2b5a1e8fc0c | 484 | } |
Tantep | 1:19138bfe23c9 | 485 | |
chana_jo | 0:d2b5a1e8fc0c | 486 | void test() |
chana_jo | 0:d2b5a1e8fc0c | 487 | { |
chana_jo | 0:d2b5a1e8fc0c | 488 | TS_StateTypeDef TS_State; |
Tantep | 1:19138bfe23c9 | 489 | /*uint8_t status;//ไม่ได้ใช้สร้างไว้ก่อน*/ |
chana_jo | 0:d2b5a1e8fc0c | 490 | ts.GetState(&TS_State); |
chana_jo | 0:d2b5a1e8fc0c | 491 | if((TS_State.touchDetected))//รับtouchอะไรก็ตาม จะเข้าfunctionนี้ |
chana_jo | 0:d2b5a1e8fc0c | 492 | { |
chana_jo | 0:d2b5a1e8fc0c | 493 | |
chana_jo | 0:d2b5a1e8fc0c | 494 | if(TS_State.touchX[0]<74&&TS_State.touchX[0]>24&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//playbutton |
chana_jo | 0:d2b5a1e8fc0c | 495 | { |
chana_jo | 0:d2b5a1e8fc0c | 496 | if(checkplay==0) |
chana_jo | 0:d2b5a1e8fc0c | 497 | { |
chana_jo | 0:d2b5a1e8fc0c | 498 | checkplay=1; |
chana_jo | 0:d2b5a1e8fc0c | 499 | } |
chana_jo | 0:d2b5a1e8fc0c | 500 | else if(checkplay==1) |
chana_jo | 0:d2b5a1e8fc0c | 501 | { |
chana_jo | 0:d2b5a1e8fc0c | 502 | checkplay=0; |
chana_jo | 0:d2b5a1e8fc0c | 503 | } |
chana_jo | 0:d2b5a1e8fc0c | 504 | } |
chana_jo | 0:d2b5a1e8fc0c | 505 | if(TS_State.touchX[0]<74&&TS_State.touchX[0]>24&&TS_State.touchY[0]<161&&TS_State.touchY[0]>136)//previous page |
chana_jo | 0:d2b5a1e8fc0c | 506 | { |
chana_jo | 0:d2b5a1e8fc0c | 507 | page=page-1; |
chana_jo | 0:d2b5a1e8fc0c | 508 | if(page<1) |
chana_jo | 0:d2b5a1e8fc0c | 509 | { |
chana_jo | 0:d2b5a1e8fc0c | 510 | page=5; |
chana_jo | 0:d2b5a1e8fc0c | 511 | } |
chana_jo | 0:d2b5a1e8fc0c | 512 | pc.printf("change to page %d",page); |
chana_jo | 0:d2b5a1e8fc0c | 513 | |
chana_jo | 0:d2b5a1e8fc0c | 514 | } |
chana_jo | 0:d2b5a1e8fc0c | 515 | if(TS_State.touchX[0]<431&&TS_State.touchX[0]>406&&TS_State.touchY[0]<161&&TS_State.touchY[0]>136)//next page |
chana_jo | 0:d2b5a1e8fc0c | 516 | { |
chana_jo | 0:d2b5a1e8fc0c | 517 | page=page+1; |
chana_jo | 0:d2b5a1e8fc0c | 518 | if(page>5) |
chana_jo | 0:d2b5a1e8fc0c | 519 | { |
chana_jo | 0:d2b5a1e8fc0c | 520 | page=1; |
chana_jo | 0:d2b5a1e8fc0c | 521 | } |
chana_jo | 0:d2b5a1e8fc0c | 522 | pc.printf("change to page %d",page); |
chana_jo | 0:d2b5a1e8fc0c | 523 | |
chana_jo | 0:d2b5a1e8fc0c | 524 | } |
chana_jo | 0:d2b5a1e8fc0c | 525 | if(TS_State.touchX[0]<122&&TS_State.touchX[0]>98&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat1 |
chana_jo | 0:d2b5a1e8fc0c | 526 | { |
Tantep | 1:19138bfe23c9 | 527 | |
chana_jo | 0:d2b5a1e8fc0c | 528 | if(beat[page-1][0]==0) |
chana_jo | 0:d2b5a1e8fc0c | 529 | { |
chana_jo | 0:d2b5a1e8fc0c | 530 | beat[page-1][0]=1; |
Tantep | 1:19138bfe23c9 | 531 | |
Tantep | 1:19138bfe23c9 | 532 | } |
chana_jo | 0:d2b5a1e8fc0c | 533 | else if(beat[page-1][0]==1) |
chana_jo | 0:d2b5a1e8fc0c | 534 | { |
chana_jo | 0:d2b5a1e8fc0c | 535 | beat[page-1][0]=0; |
chana_jo | 0:d2b5a1e8fc0c | 536 | } |
Tantep | 1:19138bfe23c9 | 537 | |
Tantep | 1:19138bfe23c9 | 538 | |
Tantep | 1:19138bfe23c9 | 539 | |
chana_jo | 0:d2b5a1e8fc0c | 540 | } |
chana_jo | 0:d2b5a1e8fc0c | 541 | if(TS_State.touchX[0]<166&&TS_State.touchX[0]>142&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat2 |
chana_jo | 0:d2b5a1e8fc0c | 542 | { |
chana_jo | 0:d2b5a1e8fc0c | 543 | if(beat[page-1][1]==0) |
chana_jo | 0:d2b5a1e8fc0c | 544 | { |
chana_jo | 0:d2b5a1e8fc0c | 545 | beat[page-1][1]=1; |
chana_jo | 0:d2b5a1e8fc0c | 546 | } |
chana_jo | 0:d2b5a1e8fc0c | 547 | else if(beat[page-1][1]==1) |
chana_jo | 0:d2b5a1e8fc0c | 548 | { |
chana_jo | 0:d2b5a1e8fc0c | 549 | beat[page-1][1]=0; |
chana_jo | 0:d2b5a1e8fc0c | 550 | } |
chana_jo | 0:d2b5a1e8fc0c | 551 | |
chana_jo | 0:d2b5a1e8fc0c | 552 | } |
chana_jo | 0:d2b5a1e8fc0c | 553 | if(TS_State.touchX[0]<210&&TS_State.touchX[0]>186&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat3 |
chana_jo | 0:d2b5a1e8fc0c | 554 | { |
chana_jo | 0:d2b5a1e8fc0c | 555 | if(beat[page-1][2]==0) |
chana_jo | 0:d2b5a1e8fc0c | 556 | { |
chana_jo | 0:d2b5a1e8fc0c | 557 | beat[page-1][2]=1; |
chana_jo | 0:d2b5a1e8fc0c | 558 | } |
chana_jo | 0:d2b5a1e8fc0c | 559 | else if(beat[page-1][2]==1) |
chana_jo | 0:d2b5a1e8fc0c | 560 | { |
chana_jo | 0:d2b5a1e8fc0c | 561 | beat[page-1][2]=0; |
chana_jo | 0:d2b5a1e8fc0c | 562 | } |
chana_jo | 0:d2b5a1e8fc0c | 563 | |
chana_jo | 0:d2b5a1e8fc0c | 564 | } |
chana_jo | 0:d2b5a1e8fc0c | 565 | if(TS_State.touchX[0]<254&&TS_State.touchX[0]>230&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat4 |
chana_jo | 0:d2b5a1e8fc0c | 566 | { |
chana_jo | 0:d2b5a1e8fc0c | 567 | if(beat[page-1][3]==0) |
chana_jo | 0:d2b5a1e8fc0c | 568 | { |
chana_jo | 0:d2b5a1e8fc0c | 569 | beat[page-1][3]=1; |
chana_jo | 0:d2b5a1e8fc0c | 570 | } |
chana_jo | 0:d2b5a1e8fc0c | 571 | else if(beat[page-1][3]==1) |
chana_jo | 0:d2b5a1e8fc0c | 572 | { |
chana_jo | 0:d2b5a1e8fc0c | 573 | beat[page-1][3]=0; |
chana_jo | 0:d2b5a1e8fc0c | 574 | } |
chana_jo | 0:d2b5a1e8fc0c | 575 | |
chana_jo | 0:d2b5a1e8fc0c | 576 | } |
chana_jo | 0:d2b5a1e8fc0c | 577 | if(TS_State.touchX[0]<298&&TS_State.touchX[0]>274&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat5 |
chana_jo | 0:d2b5a1e8fc0c | 578 | { |
chana_jo | 0:d2b5a1e8fc0c | 579 | if(beat[page-1][4]==0) |
chana_jo | 0:d2b5a1e8fc0c | 580 | { |
chana_jo | 0:d2b5a1e8fc0c | 581 | beat[page-1][4]=1; |
chana_jo | 0:d2b5a1e8fc0c | 582 | } |
chana_jo | 0:d2b5a1e8fc0c | 583 | else if(beat[page-1][4]==1) |
chana_jo | 0:d2b5a1e8fc0c | 584 | { |
chana_jo | 0:d2b5a1e8fc0c | 585 | beat[page-1][4]=0; |
chana_jo | 0:d2b5a1e8fc0c | 586 | } |
chana_jo | 0:d2b5a1e8fc0c | 587 | |
chana_jo | 0:d2b5a1e8fc0c | 588 | } |
chana_jo | 0:d2b5a1e8fc0c | 589 | if(TS_State.touchX[0]<342&&TS_State.touchX[0]>318&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat6 |
chana_jo | 0:d2b5a1e8fc0c | 590 | { |
chana_jo | 0:d2b5a1e8fc0c | 591 | if(beat[page-1][5]==0) |
chana_jo | 0:d2b5a1e8fc0c | 592 | { |
chana_jo | 0:d2b5a1e8fc0c | 593 | beat[page-1][5]=1; |
chana_jo | 0:d2b5a1e8fc0c | 594 | } |
chana_jo | 0:d2b5a1e8fc0c | 595 | else if(beat[page-1][5]==1) |
chana_jo | 0:d2b5a1e8fc0c | 596 | { |
chana_jo | 0:d2b5a1e8fc0c | 597 | beat[page-1][5]=0; |
chana_jo | 0:d2b5a1e8fc0c | 598 | } |
chana_jo | 0:d2b5a1e8fc0c | 599 | |
chana_jo | 0:d2b5a1e8fc0c | 600 | } |
chana_jo | 0:d2b5a1e8fc0c | 601 | if(TS_State.touchX[0]<386&&TS_State.touchX[0]>362&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat7 |
chana_jo | 0:d2b5a1e8fc0c | 602 | { |
chana_jo | 0:d2b5a1e8fc0c | 603 | if(beat[page-1][6]==0) |
chana_jo | 0:d2b5a1e8fc0c | 604 | { |
chana_jo | 0:d2b5a1e8fc0c | 605 | beat[page-1][6]=1; |
chana_jo | 0:d2b5a1e8fc0c | 606 | } |
chana_jo | 0:d2b5a1e8fc0c | 607 | else if(beat[page-1][6]==1) |
chana_jo | 0:d2b5a1e8fc0c | 608 | { |
chana_jo | 0:d2b5a1e8fc0c | 609 | beat[page-1][6]=0; |
chana_jo | 0:d2b5a1e8fc0c | 610 | } |
chana_jo | 0:d2b5a1e8fc0c | 611 | |
chana_jo | 0:d2b5a1e8fc0c | 612 | } |
chana_jo | 0:d2b5a1e8fc0c | 613 | if(TS_State.touchX[0]<430&&TS_State.touchX[0]>406&&TS_State.touchY[0]<248&&TS_State.touchY[0]>198)//beat8 |
chana_jo | 0:d2b5a1e8fc0c | 614 | { |
chana_jo | 0:d2b5a1e8fc0c | 615 | if(beat[page-1][7]==0) |
chana_jo | 0:d2b5a1e8fc0c | 616 | { |
chana_jo | 0:d2b5a1e8fc0c | 617 | beat[page-1][7]=1; |
chana_jo | 0:d2b5a1e8fc0c | 618 | } |
chana_jo | 0:d2b5a1e8fc0c | 619 | else if(beat[page-1][7]==1) |
chana_jo | 0:d2b5a1e8fc0c | 620 | { |
chana_jo | 0:d2b5a1e8fc0c | 621 | beat[page-1][7]=0; |
chana_jo | 0:d2b5a1e8fc0c | 622 | } |
chana_jo | 0:d2b5a1e8fc0c | 623 | |
chana_jo | 0:d2b5a1e8fc0c | 624 | } |
chana_jo | 0:d2b5a1e8fc0c | 625 | |
chana_jo | 0:d2b5a1e8fc0c | 626 | pc.printf("at page :%d ",page); //ไว้check uart เฉยๆ |
chana_jo | 0:d2b5a1e8fc0c | 627 | pc.printf("%d",beat[page-1][0]); |
chana_jo | 0:d2b5a1e8fc0c | 628 | pc.printf("%d",beat[page-1][1]); |
chana_jo | 0:d2b5a1e8fc0c | 629 | pc.printf("%d",beat[page-1][2]); |
chana_jo | 0:d2b5a1e8fc0c | 630 | pc.printf("%d",beat[page-1][3]); |
chana_jo | 0:d2b5a1e8fc0c | 631 | pc.printf("%d",beat[page-1][4]); |
chana_jo | 0:d2b5a1e8fc0c | 632 | pc.printf("%d",beat[page-1][5]); |
chana_jo | 0:d2b5a1e8fc0c | 633 | pc.printf("%d",beat[page-1][6]); |
chana_jo | 0:d2b5a1e8fc0c | 634 | pc.printf("%d",beat[page-1][7]); |
chana_jo | 0:d2b5a1e8fc0c | 635 | pc.printf("\n\r"); |
chana_jo | 0:d2b5a1e8fc0c | 636 | } |
chana_jo | 0:d2b5a1e8fc0c | 637 | } |
chana_jo | 0:d2b5a1e8fc0c | 638 | |
chana_jo | 0:d2b5a1e8fc0c | 639 | void knob()//read analog |
chana_jo | 0:d2b5a1e8fc0c | 640 | { |
chana_jo | 4:ec0ff5b355e8 | 641 | |
chana_jo | 0:d2b5a1e8fc0c | 642 | |
chana_jo | 4:ec0ff5b355e8 | 643 | volume=volumeknob.read();//0to100 |
chana_jo | 4:ec0ff5b355e8 | 644 | tempo=tempoknob.read();//problematic******************************************** |
Tantep | 6:d6d4f48fc2e1 | 645 | //volume=1; |
chana_jo | 4:ec0ff5b355e8 | 646 | volume2=volume*100; |
chana_jo | 4:ec0ff5b355e8 | 647 | sprintf(volumechar,"%1.1f",volume2); |
chana_jo | 4:ec0ff5b355e8 | 648 | tempo2=60+(tempo*90); |
chana_jo | 4:ec0ff5b355e8 | 649 | speed=(60/tempo2)/2; |
chana_jo | 4:ec0ff5b355e8 | 650 | sprintf(tempostr,"%1.1f",speed); |
chana_jo | 4:ec0ff5b355e8 | 651 | pc.printf("speed = %1.3f\n\r",speed); |
chana_jo | 4:ec0ff5b355e8 | 652 | pc.printf("tempo =%1.1f\n\r",tempo2); |
chana_jo | 4:ec0ff5b355e8 | 653 | pc.printf("volume =%1.3f\n\r",volume); |
chana_jo | 4:ec0ff5b355e8 | 654 | pc.printf("volume =%1.1f percent\n\r",volume2); |
chana_jo | 0:d2b5a1e8fc0c | 655 | |
chana_jo | 0:d2b5a1e8fc0c | 656 | } |
chana_jo | 0:d2b5a1e8fc0c | 657 | |
chana_jo | 0:d2b5a1e8fc0c | 658 | |
chana_jo | 0:d2b5a1e8fc0c | 659 | |
chana_jo | 0:d2b5a1e8fc0c | 660 | |
chana_jo | 0:d2b5a1e8fc0c | 661 | void screen()// function for display |
chana_jo | 0:d2b5a1e8fc0c | 662 | { |
chana_jo | 0:d2b5a1e8fc0c | 663 | lcd.SetBackColor(LCD_COLOR_BLUE); |
chana_jo | 0:d2b5a1e8fc0c | 664 | lcd.SetTextColor(LCD_COLOR_BROWN);//play button |
chana_jo | 0:d2b5a1e8fc0c | 665 | lcd.FillRect(24,198,50,50); |
chana_jo | 0:d2b5a1e8fc0c | 666 | lcd.SetTextColor(LCD_COLOR_YELLOW);//previous page |
chana_jo | 0:d2b5a1e8fc0c | 667 | lcd.FillRect(24,136,50,25); |
chana_jo | 0:d2b5a1e8fc0c | 668 | lcd.SetTextColor(LCD_COLOR_YELLOW);// next page |
chana_jo | 0:d2b5a1e8fc0c | 669 | lcd.FillRect(406,136,50,25); |
chana_jo | 0:d2b5a1e8fc0c | 670 | |
chana_jo | 0:d2b5a1e8fc0c | 671 | sprintf(strvolume,"%s","Volume "); //display volume |
chana_jo | 0:d2b5a1e8fc0c | 672 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 673 | lcd.DisplayStringAt(24,LINE(1),(uint8_t*)strvolume,LEFT_MODE); |
chana_jo | 0:d2b5a1e8fc0c | 674 | sprintf(volumechar,"%s",volumechar); |
chana_jo | 0:d2b5a1e8fc0c | 675 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 676 | lcd.DisplayStringAt(24,LINE(2),(uint8_t*)volumechar,LEFT_MODE); |
chana_jo | 0:d2b5a1e8fc0c | 677 | |
chana_jo | 0:d2b5a1e8fc0c | 678 | sprintf(strtempo,"%s","Tempo "); |
chana_jo | 0:d2b5a1e8fc0c | 679 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 680 | lcd.DisplayStringAt(24,LINE(1),(uint8_t*)strtempo,RIGHT_MODE); |
chana_jo | 4:ec0ff5b355e8 | 681 | sprintf(tempostr,"%1.1f",tempo2); ////////////////////////////////////////////display tempo on lcd ไม่ถูก |
chana_jo | 0:d2b5a1e8fc0c | 682 | lcd.SetTextColor(LCD_COLOR_BLACK); |
Tantep | 1:19138bfe23c9 | 683 | lcd.DisplayStringAt(24,LINE(2),(uint8_t*)tempostr,RIGHT_MODE); |
chana_jo | 0:d2b5a1e8fc0c | 684 | |
chana_jo | 0:d2b5a1e8fc0c | 685 | |
chana_jo | 0:d2b5a1e8fc0c | 686 | |
chana_jo | 0:d2b5a1e8fc0c | 687 | |
chana_jo | 0:d2b5a1e8fc0c | 688 | if(page==1) //พวกนี้คือแสดงหน้าว่าอยู่หน้าอะไร |
chana_jo | 0:d2b5a1e8fc0c | 689 | { |
Tantep | 1:19138bfe23c9 | 690 | sprintf(currentpage,"%s","Current page is Kick "); |
chana_jo | 0:d2b5a1e8fc0c | 691 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 692 | lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE); |
Tantep | 1:19138bfe23c9 | 693 | |
chana_jo | 0:d2b5a1e8fc0c | 694 | } |
chana_jo | 0:d2b5a1e8fc0c | 695 | else if(page==2) |
chana_jo | 0:d2b5a1e8fc0c | 696 | { |
Tantep | 1:19138bfe23c9 | 697 | sprintf(currentpage,"%s","Current page is Snare "); |
chana_jo | 0:d2b5a1e8fc0c | 698 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 699 | lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE); |
Tantep | 1:19138bfe23c9 | 700 | |
chana_jo | 0:d2b5a1e8fc0c | 701 | } |
chana_jo | 0:d2b5a1e8fc0c | 702 | else if(page==3) |
chana_jo | 0:d2b5a1e8fc0c | 703 | { |
Tantep | 1:19138bfe23c9 | 704 | sprintf(currentpage,"%s","Current page is Clap "); |
chana_jo | 0:d2b5a1e8fc0c | 705 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 706 | lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE); |
chana_jo | 0:d2b5a1e8fc0c | 707 | } |
chana_jo | 0:d2b5a1e8fc0c | 708 | else if(page==4) |
chana_jo | 0:d2b5a1e8fc0c | 709 | { |
Tantep | 1:19138bfe23c9 | 710 | sprintf(currentpage,"%s","Current page is Close HiHat "); |
chana_jo | 0:d2b5a1e8fc0c | 711 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 712 | lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE); |
chana_jo | 0:d2b5a1e8fc0c | 713 | } |
chana_jo | 0:d2b5a1e8fc0c | 714 | else if(page==5) |
chana_jo | 0:d2b5a1e8fc0c | 715 | { |
Tantep | 1:19138bfe23c9 | 716 | sprintf(currentpage,"%s","Current page is Open HiHat "); |
chana_jo | 0:d2b5a1e8fc0c | 717 | lcd.SetTextColor(LCD_COLOR_BLACK); |
chana_jo | 0:d2b5a1e8fc0c | 718 | lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE); |
chana_jo | 0:d2b5a1e8fc0c | 719 | } |
chana_jo | 0:d2b5a1e8fc0c | 720 | |
chana_jo | 0:d2b5a1e8fc0c | 721 | // พวกนี้คือเปลี่ยนปุ่มแต่ละ beat |
chana_jo | 0:d2b5a1e8fc0c | 722 | if(beat[page-1][0]==0) |
chana_jo | 0:d2b5a1e8fc0c | 723 | { |
chana_jo | 0:d2b5a1e8fc0c | 724 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 725 | lcd.FillRect(98,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 726 | } |
chana_jo | 0:d2b5a1e8fc0c | 727 | if(beat[page-1][0]==1) |
chana_jo | 0:d2b5a1e8fc0c | 728 | { |
chana_jo | 0:d2b5a1e8fc0c | 729 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 730 | lcd.FillRect(98,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 731 | } |
chana_jo | 0:d2b5a1e8fc0c | 732 | if(beat[page-1][1]==0) |
chana_jo | 0:d2b5a1e8fc0c | 733 | { |
chana_jo | 0:d2b5a1e8fc0c | 734 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 735 | lcd.FillRect(142,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 736 | } |
chana_jo | 0:d2b5a1e8fc0c | 737 | if(beat[page-1][1]==1) |
chana_jo | 0:d2b5a1e8fc0c | 738 | { |
chana_jo | 0:d2b5a1e8fc0c | 739 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 740 | lcd.FillRect(142,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 741 | } |
chana_jo | 0:d2b5a1e8fc0c | 742 | if(beat[page-1][2]==0) |
chana_jo | 0:d2b5a1e8fc0c | 743 | { |
chana_jo | 0:d2b5a1e8fc0c | 744 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 745 | lcd.FillRect(186,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 746 | } |
chana_jo | 0:d2b5a1e8fc0c | 747 | if(beat[page-1][2]==1) |
chana_jo | 0:d2b5a1e8fc0c | 748 | { |
chana_jo | 0:d2b5a1e8fc0c | 749 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 750 | lcd.FillRect(186,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 751 | } |
chana_jo | 0:d2b5a1e8fc0c | 752 | if(beat[page-1][3]==0) |
chana_jo | 0:d2b5a1e8fc0c | 753 | { |
chana_jo | 0:d2b5a1e8fc0c | 754 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 755 | lcd.FillRect(230,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 756 | } |
chana_jo | 0:d2b5a1e8fc0c | 757 | if(beat[page-1][3]==1) |
chana_jo | 0:d2b5a1e8fc0c | 758 | { |
chana_jo | 0:d2b5a1e8fc0c | 759 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 760 | lcd.FillRect(230,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 761 | } |
chana_jo | 0:d2b5a1e8fc0c | 762 | if(beat[page-1][4]==0) |
chana_jo | 0:d2b5a1e8fc0c | 763 | { |
chana_jo | 0:d2b5a1e8fc0c | 764 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 765 | lcd.FillRect(274,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 766 | } |
chana_jo | 0:d2b5a1e8fc0c | 767 | if(beat[page-1][4]==1) |
chana_jo | 0:d2b5a1e8fc0c | 768 | { |
chana_jo | 0:d2b5a1e8fc0c | 769 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 770 | lcd.FillRect(274,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 771 | } |
chana_jo | 0:d2b5a1e8fc0c | 772 | if(beat[page-1][5]==0) |
chana_jo | 0:d2b5a1e8fc0c | 773 | { |
chana_jo | 0:d2b5a1e8fc0c | 774 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 775 | lcd.FillRect(318,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 776 | } |
chana_jo | 0:d2b5a1e8fc0c | 777 | if(beat[page-1][5]==1) |
chana_jo | 0:d2b5a1e8fc0c | 778 | { |
chana_jo | 0:d2b5a1e8fc0c | 779 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 780 | lcd.FillRect(318,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 781 | } |
chana_jo | 0:d2b5a1e8fc0c | 782 | if(beat[page-1][6]==0) |
chana_jo | 0:d2b5a1e8fc0c | 783 | { |
chana_jo | 0:d2b5a1e8fc0c | 784 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 785 | lcd.FillRect(362,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 786 | } |
chana_jo | 0:d2b5a1e8fc0c | 787 | if(beat[page-1][6]==1) |
chana_jo | 0:d2b5a1e8fc0c | 788 | { |
chana_jo | 0:d2b5a1e8fc0c | 789 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 790 | lcd.FillRect(362,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 791 | } |
chana_jo | 0:d2b5a1e8fc0c | 792 | if(beat[page-1][7]==0) |
chana_jo | 0:d2b5a1e8fc0c | 793 | { |
chana_jo | 0:d2b5a1e8fc0c | 794 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
chana_jo | 0:d2b5a1e8fc0c | 795 | lcd.FillRect(406,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 796 | } |
chana_jo | 0:d2b5a1e8fc0c | 797 | if(beat[page-1][7]==1) |
chana_jo | 0:d2b5a1e8fc0c | 798 | { |
chana_jo | 0:d2b5a1e8fc0c | 799 | lcd.SetTextColor(LCD_COLOR_GREEN); |
chana_jo | 0:d2b5a1e8fc0c | 800 | lcd.FillRect(406,198,24,50); |
chana_jo | 0:d2b5a1e8fc0c | 801 | } |
chana_jo | 0:d2b5a1e8fc0c | 802 | |
chana_jo | 0:d2b5a1e8fc0c | 803 | } |
Tantep | 5:7db99d28bc36 | 804 | |
chana_jo | 2:58378cb7e76f | 805 | |
chana_jo | 2:58378cb7e76f | 806 |