possibly simultaneously

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

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?

UserRevisionLine numberNew 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