Microprocessor and embedded system Final Project (Music/61) 60010194 Chanathip Pongskul 60010454 Tantep Sinjankhom 60010551 Netiwat Akarachaimongkol

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

Committer:
Tantep
Date:
Mon May 06 07:11:21 2019 +0000
Revision:
6:d6d4f48fc2e1
Parent:
5:7db99d28bc36
1

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