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