ver1 one at the time

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

Committer:
chana_jo
Date:
Sat May 04 08:46:30 2019 +0000
Revision:
2:58378cb7e76f
Parent:
1:19138bfe23c9
vv

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 2:58378cb7e76f 37 re.attach(&play, 0.5);//เล่นตาม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 {
Tantep 1:19138bfe23c9 93
chana_jo 2:58378cb7e76f 94 speaker = kick44_data[l]/16777215.0;//scale to 0.0 to 1.0 for PWM
chana_jo 2:58378cb7e76f 95 l++;
chana_jo 2:58378cb7e76f 96 if (l>= num_kick44) {
chana_jo 2:58378cb7e76f 97 l = 0;
Tantep 1:19138bfe23c9 98 kick44tick.detach();
chana_jo 2:58378cb7e76f 99 //led = 0;
Tantep 1:19138bfe23c9 100 }
Tantep 1:19138bfe23c9 101 }
Tantep 1:19138bfe23c9 102
Tantep 1:19138bfe23c9 103 void playsnare()
Tantep 1:19138bfe23c9 104 {
Tantep 1:19138bfe23c9 105 speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 106
Tantep 1:19138bfe23c9 107
Tantep 1:19138bfe23c9 108 sn44tick.attach(&sn44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 109
Tantep 1:19138bfe23c9 110 wait(0.5);
Tantep 1:19138bfe23c9 111
Tantep 1:19138bfe23c9 112 }
Tantep 1:19138bfe23c9 113 void playkick()
Tantep 1:19138bfe23c9 114 {
Tantep 1:19138bfe23c9 115 speaker.period(1.0/441000.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 116
Tantep 1:19138bfe23c9 117
Tantep 1:19138bfe23c9 118 kick44tick.attach(&kick44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 119
Tantep 1:19138bfe23c9 120 wait(0.2);
Tantep 1:19138bfe23c9 121
Tantep 1:19138bfe23c9 122 }
Tantep 1:19138bfe23c9 123 void playclap()
Tantep 1:19138bfe23c9 124 {
Tantep 1:19138bfe23c9 125 speaker.period(1.0/220500.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 126
Tantep 1:19138bfe23c9 127
Tantep 1:19138bfe23c9 128 cl44tick.attach(&cl44_sample, 1.0 /22050);
Tantep 1:19138bfe23c9 129
Tantep 1:19138bfe23c9 130 wait(0.5);
Tantep 1:19138bfe23c9 131
Tantep 1:19138bfe23c9 132 }
Tantep 1:19138bfe23c9 133 void playclhh()
Tantep 1:19138bfe23c9 134 {
Tantep 1:19138bfe23c9 135 speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 136
Tantep 1:19138bfe23c9 137 clhh44tick.attach(&clhh44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 138
Tantep 1:19138bfe23c9 139 wait(0.5);
Tantep 1:19138bfe23c9 140
Tantep 1:19138bfe23c9 141 }
Tantep 1:19138bfe23c9 142 void playophh()
Tantep 1:19138bfe23c9 143 {
Tantep 1:19138bfe23c9 144 speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 145 ophh44tick.attach(&ophh44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 146
Tantep 1:19138bfe23c9 147 wait(0.2);
Tantep 1:19138bfe23c9 148
Tantep 1:19138bfe23c9 149 }
chana_jo 2:58378cb7e76f 150 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chana_jo 0:d2b5a1e8fc0c 151 void play()
chana_jo 0:d2b5a1e8fc0c 152 {
chana_jo 2:58378cb7e76f 153 if(checkplay==1)//led blink when button play is on
chana_jo 2:58378cb7e76f 154 {
chana_jo 2:58378cb7e76f 155 pc.printf("current beat : %d ",tracking);
chana_jo 2:58378cb7e76f 156 if(tracking<8)
chana_jo 2:58378cb7e76f 157 tracking=tracking+1;
chana_jo 2:58378cb7e76f 158 else if(tracking==8)
chana_jo 2:58378cb7e76f 159 tracking=1;
chana_jo 0:d2b5a1e8fc0c 160 led=!led;
chana_jo 2:58378cb7e76f 161
chana_jo 2:58378cb7e76f 162 if(tracking==1)
chana_jo 2:58378cb7e76f 163 {
chana_jo 2:58378cb7e76f 164
chana_jo 2:58378cb7e76f 165
chana_jo 2:58378cb7e76f 166 }
chana_jo 2:58378cb7e76f 167 else if(tracking==2)
chana_jo 2:58378cb7e76f 168 {
chana_jo 2:58378cb7e76f 169
chana_jo 2:58378cb7e76f 170
chana_jo 2:58378cb7e76f 171 }
chana_jo 2:58378cb7e76f 172 else if(tracking==3)
chana_jo 2:58378cb7e76f 173 {
chana_jo 2:58378cb7e76f 174
chana_jo 2:58378cb7e76f 175
chana_jo 2:58378cb7e76f 176 }
chana_jo 2:58378cb7e76f 177 else if(tracking==4)
chana_jo 2:58378cb7e76f 178 {
chana_jo 2:58378cb7e76f 179
chana_jo 2:58378cb7e76f 180
chana_jo 2:58378cb7e76f 181 }
chana_jo 2:58378cb7e76f 182 else if(tracking==5)
chana_jo 2:58378cb7e76f 183 {
chana_jo 2:58378cb7e76f 184
chana_jo 2:58378cb7e76f 185
chana_jo 2:58378cb7e76f 186 }
chana_jo 2:58378cb7e76f 187 else if(tracking==6)
chana_jo 2:58378cb7e76f 188 {
chana_jo 2:58378cb7e76f 189
chana_jo 2:58378cb7e76f 190
chana_jo 2:58378cb7e76f 191 }
chana_jo 2:58378cb7e76f 192 else if(tracking==7)
chana_jo 2:58378cb7e76f 193 {
chana_jo 2:58378cb7e76f 194
chana_jo 2:58378cb7e76f 195
chana_jo 2:58378cb7e76f 196 }
chana_jo 2:58378cb7e76f 197 else if(tracking==8)
chana_jo 2:58378cb7e76f 198 {
chana_jo 2:58378cb7e76f 199
chana_jo 2:58378cb7e76f 200
chana_jo 2:58378cb7e76f 201 }
chana_jo 2:58378cb7e76f 202
chana_jo 0:d2b5a1e8fc0c 203 }
chana_jo 2:58378cb7e76f 204 else if(checkplay==0)//led off
chana_jo 2:58378cb7e76f 205 {
chana_jo 2:58378cb7e76f 206 led=0;
chana_jo 2:58378cb7e76f 207 tracking=1;
chana_jo 2:58378cb7e76f 208 }
chana_jo 0:d2b5a1e8fc0c 209
chana_jo 0:d2b5a1e8fc0c 210 }
Tantep 1:19138bfe23c9 211
chana_jo 0:d2b5a1e8fc0c 212 void test()
chana_jo 0:d2b5a1e8fc0c 213 {
chana_jo 0:d2b5a1e8fc0c 214 TS_StateTypeDef TS_State;
Tantep 1:19138bfe23c9 215 /*uint8_t status;//ไม่ได้ใช้สร้างไว้ก่อน*/
chana_jo 0:d2b5a1e8fc0c 216 ts.GetState(&TS_State);
chana_jo 0:d2b5a1e8fc0c 217 if((TS_State.touchDetected))//รับtouchอะไรก็ตาม จะเข้าfunctionนี้
chana_jo 0:d2b5a1e8fc0c 218 {
chana_jo 0:d2b5a1e8fc0c 219
chana_jo 0:d2b5a1e8fc0c 220 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 221 {
chana_jo 0:d2b5a1e8fc0c 222 if(checkplay==0)
chana_jo 0:d2b5a1e8fc0c 223 {
chana_jo 0:d2b5a1e8fc0c 224 checkplay=1;
chana_jo 0:d2b5a1e8fc0c 225 }
chana_jo 0:d2b5a1e8fc0c 226 else if(checkplay==1)
chana_jo 0:d2b5a1e8fc0c 227 {
chana_jo 0:d2b5a1e8fc0c 228 checkplay=0;
chana_jo 0:d2b5a1e8fc0c 229 }
chana_jo 0:d2b5a1e8fc0c 230 }
chana_jo 0:d2b5a1e8fc0c 231 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 232 {
chana_jo 0:d2b5a1e8fc0c 233 page=page-1;
chana_jo 0:d2b5a1e8fc0c 234 if(page<1)
chana_jo 0:d2b5a1e8fc0c 235 {
chana_jo 0:d2b5a1e8fc0c 236 page=5;
chana_jo 0:d2b5a1e8fc0c 237 }
chana_jo 0:d2b5a1e8fc0c 238 pc.printf("change to page %d",page);
chana_jo 0:d2b5a1e8fc0c 239
chana_jo 0:d2b5a1e8fc0c 240 }
chana_jo 0:d2b5a1e8fc0c 241 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 242 {
chana_jo 0:d2b5a1e8fc0c 243 page=page+1;
chana_jo 0:d2b5a1e8fc0c 244 if(page>5)
chana_jo 0:d2b5a1e8fc0c 245 {
chana_jo 0:d2b5a1e8fc0c 246 page=1;
chana_jo 0:d2b5a1e8fc0c 247 }
chana_jo 0:d2b5a1e8fc0c 248 pc.printf("change to page %d",page);
chana_jo 0:d2b5a1e8fc0c 249
chana_jo 0:d2b5a1e8fc0c 250 }
chana_jo 0:d2b5a1e8fc0c 251 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 252 {
Tantep 1:19138bfe23c9 253
chana_jo 0:d2b5a1e8fc0c 254 if(beat[page-1][0]==0)
chana_jo 0:d2b5a1e8fc0c 255 {
chana_jo 0:d2b5a1e8fc0c 256 beat[page-1][0]=1;
Tantep 1:19138bfe23c9 257
Tantep 1:19138bfe23c9 258 }
chana_jo 0:d2b5a1e8fc0c 259 else if(beat[page-1][0]==1)
chana_jo 0:d2b5a1e8fc0c 260 {
chana_jo 0:d2b5a1e8fc0c 261 beat[page-1][0]=0;
chana_jo 0:d2b5a1e8fc0c 262 }
Tantep 1:19138bfe23c9 263
Tantep 1:19138bfe23c9 264
Tantep 1:19138bfe23c9 265
chana_jo 0:d2b5a1e8fc0c 266 }
chana_jo 0:d2b5a1e8fc0c 267 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 268 {
chana_jo 0:d2b5a1e8fc0c 269 if(beat[page-1][1]==0)
chana_jo 0:d2b5a1e8fc0c 270 {
chana_jo 0:d2b5a1e8fc0c 271 beat[page-1][1]=1;
chana_jo 0:d2b5a1e8fc0c 272 }
chana_jo 0:d2b5a1e8fc0c 273 else if(beat[page-1][1]==1)
chana_jo 0:d2b5a1e8fc0c 274 {
chana_jo 0:d2b5a1e8fc0c 275 beat[page-1][1]=0;
chana_jo 0:d2b5a1e8fc0c 276 }
chana_jo 0:d2b5a1e8fc0c 277
chana_jo 0:d2b5a1e8fc0c 278 }
chana_jo 0:d2b5a1e8fc0c 279 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 280 {
chana_jo 0:d2b5a1e8fc0c 281 if(beat[page-1][2]==0)
chana_jo 0:d2b5a1e8fc0c 282 {
chana_jo 0:d2b5a1e8fc0c 283 beat[page-1][2]=1;
chana_jo 0:d2b5a1e8fc0c 284 }
chana_jo 0:d2b5a1e8fc0c 285 else if(beat[page-1][2]==1)
chana_jo 0:d2b5a1e8fc0c 286 {
chana_jo 0:d2b5a1e8fc0c 287 beat[page-1][2]=0;
chana_jo 0:d2b5a1e8fc0c 288 }
chana_jo 0:d2b5a1e8fc0c 289
chana_jo 0:d2b5a1e8fc0c 290 }
chana_jo 0:d2b5a1e8fc0c 291 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 292 {
chana_jo 0:d2b5a1e8fc0c 293 if(beat[page-1][3]==0)
chana_jo 0:d2b5a1e8fc0c 294 {
chana_jo 0:d2b5a1e8fc0c 295 beat[page-1][3]=1;
chana_jo 0:d2b5a1e8fc0c 296 }
chana_jo 0:d2b5a1e8fc0c 297 else if(beat[page-1][3]==1)
chana_jo 0:d2b5a1e8fc0c 298 {
chana_jo 0:d2b5a1e8fc0c 299 beat[page-1][3]=0;
chana_jo 0:d2b5a1e8fc0c 300 }
chana_jo 0:d2b5a1e8fc0c 301
chana_jo 0:d2b5a1e8fc0c 302 }
chana_jo 0:d2b5a1e8fc0c 303 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 304 {
chana_jo 0:d2b5a1e8fc0c 305 if(beat[page-1][4]==0)
chana_jo 0:d2b5a1e8fc0c 306 {
chana_jo 0:d2b5a1e8fc0c 307 beat[page-1][4]=1;
chana_jo 0:d2b5a1e8fc0c 308 }
chana_jo 0:d2b5a1e8fc0c 309 else if(beat[page-1][4]==1)
chana_jo 0:d2b5a1e8fc0c 310 {
chana_jo 0:d2b5a1e8fc0c 311 beat[page-1][4]=0;
chana_jo 0:d2b5a1e8fc0c 312 }
chana_jo 0:d2b5a1e8fc0c 313
chana_jo 0:d2b5a1e8fc0c 314 }
chana_jo 0:d2b5a1e8fc0c 315 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 316 {
chana_jo 0:d2b5a1e8fc0c 317 if(beat[page-1][5]==0)
chana_jo 0:d2b5a1e8fc0c 318 {
chana_jo 0:d2b5a1e8fc0c 319 beat[page-1][5]=1;
chana_jo 0:d2b5a1e8fc0c 320 }
chana_jo 0:d2b5a1e8fc0c 321 else if(beat[page-1][5]==1)
chana_jo 0:d2b5a1e8fc0c 322 {
chana_jo 0:d2b5a1e8fc0c 323 beat[page-1][5]=0;
chana_jo 0:d2b5a1e8fc0c 324 }
chana_jo 0:d2b5a1e8fc0c 325
chana_jo 0:d2b5a1e8fc0c 326 }
chana_jo 0:d2b5a1e8fc0c 327 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 328 {
chana_jo 0:d2b5a1e8fc0c 329 if(beat[page-1][6]==0)
chana_jo 0:d2b5a1e8fc0c 330 {
chana_jo 0:d2b5a1e8fc0c 331 beat[page-1][6]=1;
chana_jo 0:d2b5a1e8fc0c 332 }
chana_jo 0:d2b5a1e8fc0c 333 else if(beat[page-1][6]==1)
chana_jo 0:d2b5a1e8fc0c 334 {
chana_jo 0:d2b5a1e8fc0c 335 beat[page-1][6]=0;
chana_jo 0:d2b5a1e8fc0c 336 }
chana_jo 0:d2b5a1e8fc0c 337
chana_jo 0:d2b5a1e8fc0c 338 }
chana_jo 0:d2b5a1e8fc0c 339 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 340 {
chana_jo 0:d2b5a1e8fc0c 341 if(beat[page-1][7]==0)
chana_jo 0:d2b5a1e8fc0c 342 {
chana_jo 0:d2b5a1e8fc0c 343 beat[page-1][7]=1;
chana_jo 0:d2b5a1e8fc0c 344 }
chana_jo 0:d2b5a1e8fc0c 345 else if(beat[page-1][7]==1)
chana_jo 0:d2b5a1e8fc0c 346 {
chana_jo 0:d2b5a1e8fc0c 347 beat[page-1][7]=0;
chana_jo 0:d2b5a1e8fc0c 348 }
chana_jo 0:d2b5a1e8fc0c 349
chana_jo 0:d2b5a1e8fc0c 350 }
chana_jo 0:d2b5a1e8fc0c 351
chana_jo 0:d2b5a1e8fc0c 352 pc.printf("at page :%d ",page); //ไว้check uart เฉยๆ
chana_jo 0:d2b5a1e8fc0c 353 pc.printf("%d",beat[page-1][0]);
chana_jo 0:d2b5a1e8fc0c 354 pc.printf("%d",beat[page-1][1]);
chana_jo 0:d2b5a1e8fc0c 355 pc.printf("%d",beat[page-1][2]);
chana_jo 0:d2b5a1e8fc0c 356 pc.printf("%d",beat[page-1][3]);
chana_jo 0:d2b5a1e8fc0c 357 pc.printf("%d",beat[page-1][4]);
chana_jo 0:d2b5a1e8fc0c 358 pc.printf("%d",beat[page-1][5]);
chana_jo 0:d2b5a1e8fc0c 359 pc.printf("%d",beat[page-1][6]);
chana_jo 0:d2b5a1e8fc0c 360 pc.printf("%d",beat[page-1][7]);
chana_jo 0:d2b5a1e8fc0c 361 pc.printf("\n\r");
chana_jo 0:d2b5a1e8fc0c 362 }
chana_jo 0:d2b5a1e8fc0c 363 }
chana_jo 0:d2b5a1e8fc0c 364
chana_jo 0:d2b5a1e8fc0c 365 void knob()//read analog
chana_jo 0:d2b5a1e8fc0c 366 {
chana_jo 0:d2b5a1e8fc0c 367
chana_jo 0:d2b5a1e8fc0c 368 volume=(volumeknob.read()*100);//0to100
chana_jo 0:d2b5a1e8fc0c 369 tempo=(tempoknob.read()*100);//problematic********************************************
chana_jo 0:d2b5a1e8fc0c 370
Tantep 1:19138bfe23c9 371 sprintf(tempostr,"%1.1f",tempo);
chana_jo 0:d2b5a1e8fc0c 372 sprintf(volumechar,"%1.1f",volume);
Tantep 1:19138bfe23c9 373 pc.printf("tempo = %s \n\r",tempostr); //print ในuart ถูก
chana_jo 0:d2b5a1e8fc0c 374 pc.printf("volume = %s\n\r",volumechar);
chana_jo 0:d2b5a1e8fc0c 375
chana_jo 0:d2b5a1e8fc0c 376 }
chana_jo 0:d2b5a1e8fc0c 377
chana_jo 0:d2b5a1e8fc0c 378
chana_jo 0:d2b5a1e8fc0c 379
chana_jo 0:d2b5a1e8fc0c 380
chana_jo 0:d2b5a1e8fc0c 381 void screen()// function for display
chana_jo 0:d2b5a1e8fc0c 382 {
chana_jo 0:d2b5a1e8fc0c 383 lcd.SetBackColor(LCD_COLOR_BLUE);
chana_jo 0:d2b5a1e8fc0c 384 lcd.SetTextColor(LCD_COLOR_BROWN);//play button
chana_jo 0:d2b5a1e8fc0c 385 lcd.FillRect(24,198,50,50);
chana_jo 0:d2b5a1e8fc0c 386 lcd.SetTextColor(LCD_COLOR_YELLOW);//previous page
chana_jo 0:d2b5a1e8fc0c 387 lcd.FillRect(24,136,50,25);
chana_jo 0:d2b5a1e8fc0c 388 lcd.SetTextColor(LCD_COLOR_YELLOW);// next page
chana_jo 0:d2b5a1e8fc0c 389 lcd.FillRect(406,136,50,25);
chana_jo 0:d2b5a1e8fc0c 390
chana_jo 0:d2b5a1e8fc0c 391 sprintf(strvolume,"%s","Volume "); //display volume
chana_jo 0:d2b5a1e8fc0c 392 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 393 lcd.DisplayStringAt(24,LINE(1),(uint8_t*)strvolume,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 394 sprintf(volumechar,"%s",volumechar);
chana_jo 0:d2b5a1e8fc0c 395 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 396 lcd.DisplayStringAt(24,LINE(2),(uint8_t*)volumechar,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 397
chana_jo 0:d2b5a1e8fc0c 398 sprintf(strtempo,"%s","Tempo ");
chana_jo 0:d2b5a1e8fc0c 399 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 400 lcd.DisplayStringAt(24,LINE(1),(uint8_t*)strtempo,RIGHT_MODE);
Tantep 1:19138bfe23c9 401 sprintf(tempostr,"%1.1f",tempo); ////////////////////////////////////////////display tempo on lcd ไม่ถูก
chana_jo 0:d2b5a1e8fc0c 402 lcd.SetTextColor(LCD_COLOR_BLACK);
Tantep 1:19138bfe23c9 403 lcd.DisplayStringAt(24,LINE(2),(uint8_t*)tempostr,RIGHT_MODE);
chana_jo 0:d2b5a1e8fc0c 404
chana_jo 0:d2b5a1e8fc0c 405
chana_jo 0:d2b5a1e8fc0c 406
chana_jo 0:d2b5a1e8fc0c 407
chana_jo 0:d2b5a1e8fc0c 408 if(page==1) //พวกนี้คือแสดงหน้าว่าอยู่หน้าอะไร
chana_jo 0:d2b5a1e8fc0c 409 {
Tantep 1:19138bfe23c9 410 sprintf(currentpage,"%s","Current page is Kick ");
chana_jo 0:d2b5a1e8fc0c 411 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 412 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
Tantep 1:19138bfe23c9 413
chana_jo 0:d2b5a1e8fc0c 414 }
chana_jo 0:d2b5a1e8fc0c 415 else if(page==2)
chana_jo 0:d2b5a1e8fc0c 416 {
Tantep 1:19138bfe23c9 417 sprintf(currentpage,"%s","Current page is Snare ");
chana_jo 0:d2b5a1e8fc0c 418 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 419 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
Tantep 1:19138bfe23c9 420
chana_jo 0:d2b5a1e8fc0c 421 }
chana_jo 0:d2b5a1e8fc0c 422 else if(page==3)
chana_jo 0:d2b5a1e8fc0c 423 {
Tantep 1:19138bfe23c9 424 sprintf(currentpage,"%s","Current page is Clap ");
chana_jo 0:d2b5a1e8fc0c 425 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 426 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 427 }
chana_jo 0:d2b5a1e8fc0c 428 else if(page==4)
chana_jo 0:d2b5a1e8fc0c 429 {
Tantep 1:19138bfe23c9 430 sprintf(currentpage,"%s","Current page is Close HiHat ");
chana_jo 0:d2b5a1e8fc0c 431 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 432 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 433 }
chana_jo 0:d2b5a1e8fc0c 434 else if(page==5)
chana_jo 0:d2b5a1e8fc0c 435 {
Tantep 1:19138bfe23c9 436 sprintf(currentpage,"%s","Current page is Open HiHat ");
chana_jo 0:d2b5a1e8fc0c 437 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 438 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 439 }
chana_jo 0:d2b5a1e8fc0c 440
chana_jo 0:d2b5a1e8fc0c 441 // พวกนี้คือเปลี่ยนปุ่มแต่ละ beat
chana_jo 0:d2b5a1e8fc0c 442 if(beat[page-1][0]==0)
chana_jo 0:d2b5a1e8fc0c 443 {
chana_jo 0:d2b5a1e8fc0c 444 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 445 lcd.FillRect(98,198,24,50);
chana_jo 0:d2b5a1e8fc0c 446 }
chana_jo 0:d2b5a1e8fc0c 447 if(beat[page-1][0]==1)
chana_jo 0:d2b5a1e8fc0c 448 {
chana_jo 0:d2b5a1e8fc0c 449 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 450 lcd.FillRect(98,198,24,50);
chana_jo 0:d2b5a1e8fc0c 451 }
chana_jo 0:d2b5a1e8fc0c 452 if(beat[page-1][1]==0)
chana_jo 0:d2b5a1e8fc0c 453 {
chana_jo 0:d2b5a1e8fc0c 454 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 455 lcd.FillRect(142,198,24,50);
chana_jo 0:d2b5a1e8fc0c 456 }
chana_jo 0:d2b5a1e8fc0c 457 if(beat[page-1][1]==1)
chana_jo 0:d2b5a1e8fc0c 458 {
chana_jo 0:d2b5a1e8fc0c 459 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 460 lcd.FillRect(142,198,24,50);
chana_jo 0:d2b5a1e8fc0c 461 }
chana_jo 0:d2b5a1e8fc0c 462 if(beat[page-1][2]==0)
chana_jo 0:d2b5a1e8fc0c 463 {
chana_jo 0:d2b5a1e8fc0c 464 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 465 lcd.FillRect(186,198,24,50);
chana_jo 0:d2b5a1e8fc0c 466 }
chana_jo 0:d2b5a1e8fc0c 467 if(beat[page-1][2]==1)
chana_jo 0:d2b5a1e8fc0c 468 {
chana_jo 0:d2b5a1e8fc0c 469 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 470 lcd.FillRect(186,198,24,50);
chana_jo 0:d2b5a1e8fc0c 471 }
chana_jo 0:d2b5a1e8fc0c 472 if(beat[page-1][3]==0)
chana_jo 0:d2b5a1e8fc0c 473 {
chana_jo 0:d2b5a1e8fc0c 474 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 475 lcd.FillRect(230,198,24,50);
chana_jo 0:d2b5a1e8fc0c 476 }
chana_jo 0:d2b5a1e8fc0c 477 if(beat[page-1][3]==1)
chana_jo 0:d2b5a1e8fc0c 478 {
chana_jo 0:d2b5a1e8fc0c 479 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 480 lcd.FillRect(230,198,24,50);
chana_jo 0:d2b5a1e8fc0c 481 }
chana_jo 0:d2b5a1e8fc0c 482 if(beat[page-1][4]==0)
chana_jo 0:d2b5a1e8fc0c 483 {
chana_jo 0:d2b5a1e8fc0c 484 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 485 lcd.FillRect(274,198,24,50);
chana_jo 0:d2b5a1e8fc0c 486 }
chana_jo 0:d2b5a1e8fc0c 487 if(beat[page-1][4]==1)
chana_jo 0:d2b5a1e8fc0c 488 {
chana_jo 0:d2b5a1e8fc0c 489 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 490 lcd.FillRect(274,198,24,50);
chana_jo 0:d2b5a1e8fc0c 491 }
chana_jo 0:d2b5a1e8fc0c 492 if(beat[page-1][5]==0)
chana_jo 0:d2b5a1e8fc0c 493 {
chana_jo 0:d2b5a1e8fc0c 494 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 495 lcd.FillRect(318,198,24,50);
chana_jo 0:d2b5a1e8fc0c 496 }
chana_jo 0:d2b5a1e8fc0c 497 if(beat[page-1][5]==1)
chana_jo 0:d2b5a1e8fc0c 498 {
chana_jo 0:d2b5a1e8fc0c 499 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 500 lcd.FillRect(318,198,24,50);
chana_jo 0:d2b5a1e8fc0c 501 }
chana_jo 0:d2b5a1e8fc0c 502 if(beat[page-1][6]==0)
chana_jo 0:d2b5a1e8fc0c 503 {
chana_jo 0:d2b5a1e8fc0c 504 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 505 lcd.FillRect(362,198,24,50);
chana_jo 0:d2b5a1e8fc0c 506 }
chana_jo 0:d2b5a1e8fc0c 507 if(beat[page-1][6]==1)
chana_jo 0:d2b5a1e8fc0c 508 {
chana_jo 0:d2b5a1e8fc0c 509 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 510 lcd.FillRect(362,198,24,50);
chana_jo 0:d2b5a1e8fc0c 511 }
chana_jo 0:d2b5a1e8fc0c 512 if(beat[page-1][7]==0)
chana_jo 0:d2b5a1e8fc0c 513 {
chana_jo 0:d2b5a1e8fc0c 514 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 515 lcd.FillRect(406,198,24,50);
chana_jo 0:d2b5a1e8fc0c 516 }
chana_jo 0:d2b5a1e8fc0c 517 if(beat[page-1][7]==1)
chana_jo 0:d2b5a1e8fc0c 518 {
chana_jo 0:d2b5a1e8fc0c 519 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 520 lcd.FillRect(406,198,24,50);
chana_jo 0:d2b5a1e8fc0c 521 }
chana_jo 0:d2b5a1e8fc0c 522
chana_jo 0:d2b5a1e8fc0c 523 }
chana_jo 2:58378cb7e76f 524
chana_jo 2:58378cb7e76f 525