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