11

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

Committer:
Tantep
Date:
Fri May 03 13:27:39 2019 +0000
Revision:
1:19138bfe23c9
Parent:
0:d2b5a1e8fc0c
111

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);
Tantep 1:19138bfe23c9 18 Ticker re,er,rr,ee,sn44tick,cl44tick,clhh44tick,ophh44tick,kick44tick;//timer ไว้ attach ตอนplay audio กับไว้รับปุ่ม
chana_jo 0:d2b5a1e8fc0c 19
chana_jo 0:d2b5a1e8fc0c 20 int checkplay=1,beat[5][8],page=1;
Tantep 1:19138bfe23c9 21 char currentpage[50],volumechar[50],strvolume[50],strtempo[50],tempostr[50]; //สร้างไว้ให้เขียนอักษรได้เฉยๆ
chana_jo 0:d2b5a1e8fc0c 22 float volume,tempo;
Tantep 1:19138bfe23c9 23 int i=0;
chana_jo 0:d2b5a1e8fc0c 24 void test(void); //function for touchscreen
chana_jo 0:d2b5a1e8fc0c 25 void play(void);// function for play
chana_jo 0:d2b5a1e8fc0c 26 void screen(void);//function for display
chana_jo 0:d2b5a1e8fc0c 27 void knob(void);// read knob
chana_jo 0:d2b5a1e8fc0c 28
chana_jo 0:d2b5a1e8fc0c 29 int main()
chana_jo 0:d2b5a1e8fc0c 30 {
chana_jo 0:d2b5a1e8fc0c 31 lcd.Clear(LCD_COLOR_BLUE);
chana_jo 0:d2b5a1e8fc0c 32 ee.attach(&screen, 0.03);
chana_jo 0:d2b5a1e8fc0c 33 re.attach(&play, 0.1);//เล่นตามsamplerate
chana_jo 0:d2b5a1e8fc0c 34 er.attach(&test, 0.25);//กดช้ากดเร็วแล้วแต่
chana_jo 0:d2b5a1e8fc0c 35 rr.attach(&knob,0.5);//readknob ทุก0.5
Tantep 1:19138bfe23c9 36
Tantep 1:19138bfe23c9 37
chana_jo 0:d2b5a1e8fc0c 38 }
chana_jo 0:d2b5a1e8fc0c 39
Tantep 1:19138bfe23c9 40
Tantep 1:19138bfe23c9 41 //SAMPLE && SAMPLE PLAY FUNCTION
Tantep 1:19138bfe23c9 42
Tantep 1:19138bfe23c9 43 void sn44_sample ()
Tantep 1:19138bfe23c9 44 {
Tantep 1:19138bfe23c9 45
Tantep 1:19138bfe23c9 46 speaker = sn44_data[i]/16777215.0;//scale to 0.0 to 1.0 for PWM
Tantep 1:19138bfe23c9 47 i++;
Tantep 1:19138bfe23c9 48 if (i>= num_sn44) {
Tantep 1:19138bfe23c9 49 i = 0;
Tantep 1:19138bfe23c9 50 sn44tick.detach();
Tantep 1:19138bfe23c9 51 led = 0;
Tantep 1:19138bfe23c9 52 }
Tantep 1:19138bfe23c9 53 }
Tantep 1:19138bfe23c9 54 void cl44_sample ()
Tantep 1:19138bfe23c9 55 {
Tantep 1:19138bfe23c9 56
Tantep 1:19138bfe23c9 57 speaker = cl44_data[i]/16777215.0;//scale to 0.0 to 1.0 for PWM
Tantep 1:19138bfe23c9 58 i++;
Tantep 1:19138bfe23c9 59 if (i>= num_cl44) {
Tantep 1:19138bfe23c9 60 i = 0;
Tantep 1:19138bfe23c9 61 cl44tick.detach();
Tantep 1:19138bfe23c9 62 led = 0;
Tantep 1:19138bfe23c9 63 }
Tantep 1:19138bfe23c9 64 }
Tantep 1:19138bfe23c9 65 void clhh44_sample ()
Tantep 1:19138bfe23c9 66 {
Tantep 1:19138bfe23c9 67
Tantep 1:19138bfe23c9 68 speaker = clhh44_data[i]/16777215.0;//scale to 0.0 to 1.0 for PWM
Tantep 1:19138bfe23c9 69 i++;
Tantep 1:19138bfe23c9 70 if (i>= num_clhh44) {
Tantep 1:19138bfe23c9 71 i = 0;
Tantep 1:19138bfe23c9 72 clhh44tick.detach();
Tantep 1:19138bfe23c9 73 led = 0;
Tantep 1:19138bfe23c9 74 }
Tantep 1:19138bfe23c9 75 }
Tantep 1:19138bfe23c9 76 void ophh44_sample ()
Tantep 1:19138bfe23c9 77 {
Tantep 1:19138bfe23c9 78
Tantep 1:19138bfe23c9 79 speaker = ophh44_data[i]/16777215.0;//scale to 0.0 to 1.0 for PWM
Tantep 1:19138bfe23c9 80 i++;
Tantep 1:19138bfe23c9 81 if (i>= num_ophh44) {
Tantep 1:19138bfe23c9 82 i = 0;
Tantep 1:19138bfe23c9 83 ophh44tick.detach();
Tantep 1:19138bfe23c9 84 led = 0;
Tantep 1:19138bfe23c9 85 }
Tantep 1:19138bfe23c9 86 }
Tantep 1:19138bfe23c9 87 void kick44_sample ()
Tantep 1:19138bfe23c9 88 {
Tantep 1:19138bfe23c9 89
Tantep 1:19138bfe23c9 90 speaker = kick44_data[i]/16777215.0;//scale to 0.0 to 1.0 for PWM
Tantep 1:19138bfe23c9 91 i++;
Tantep 1:19138bfe23c9 92 if (i>= num_kick44) {
Tantep 1:19138bfe23c9 93 i = 0;
Tantep 1:19138bfe23c9 94 kick44tick.detach();
Tantep 1:19138bfe23c9 95 led = 0;
Tantep 1:19138bfe23c9 96 }
Tantep 1:19138bfe23c9 97 }
Tantep 1:19138bfe23c9 98
Tantep 1:19138bfe23c9 99 void playsnare()
Tantep 1:19138bfe23c9 100 {
Tantep 1:19138bfe23c9 101 speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 102
Tantep 1:19138bfe23c9 103
Tantep 1:19138bfe23c9 104 sn44tick.attach(&sn44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 105
Tantep 1:19138bfe23c9 106 wait(0.5);
Tantep 1:19138bfe23c9 107
Tantep 1:19138bfe23c9 108 }
Tantep 1:19138bfe23c9 109 void playkick()
Tantep 1:19138bfe23c9 110 {
Tantep 1:19138bfe23c9 111 speaker.period(1.0/441000.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 112
Tantep 1:19138bfe23c9 113
Tantep 1:19138bfe23c9 114 kick44tick.attach(&kick44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 115
Tantep 1:19138bfe23c9 116 wait(0.2);
Tantep 1:19138bfe23c9 117
Tantep 1:19138bfe23c9 118 }
Tantep 1:19138bfe23c9 119 void playclap()
Tantep 1:19138bfe23c9 120 {
Tantep 1:19138bfe23c9 121 speaker.period(1.0/220500.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 122
Tantep 1:19138bfe23c9 123
Tantep 1:19138bfe23c9 124 cl44tick.attach(&cl44_sample, 1.0 /22050);
Tantep 1:19138bfe23c9 125
Tantep 1:19138bfe23c9 126 wait(0.5);
Tantep 1:19138bfe23c9 127
Tantep 1:19138bfe23c9 128 }
Tantep 1:19138bfe23c9 129 void playclhh()
Tantep 1:19138bfe23c9 130 {
Tantep 1:19138bfe23c9 131 speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 132
Tantep 1:19138bfe23c9 133 clhh44tick.attach(&clhh44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 134
Tantep 1:19138bfe23c9 135 wait(0.5);
Tantep 1:19138bfe23c9 136
Tantep 1:19138bfe23c9 137 }
Tantep 1:19138bfe23c9 138 void playophh()
Tantep 1:19138bfe23c9 139 {
Tantep 1:19138bfe23c9 140 speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
Tantep 1:19138bfe23c9 141 ophh44tick.attach(&ophh44_sample, 1.0 / 33075);
Tantep 1:19138bfe23c9 142
Tantep 1:19138bfe23c9 143 wait(0.2);
Tantep 1:19138bfe23c9 144
Tantep 1:19138bfe23c9 145 }
Tantep 1:19138bfe23c9 146 ////////////////////////////////////////////////////////////////
chana_jo 0:d2b5a1e8fc0c 147 void play()
chana_jo 0:d2b5a1e8fc0c 148 {
chana_jo 0:d2b5a1e8fc0c 149 if(checkplay==1)//led blink when button play is on
chana_jo 0:d2b5a1e8fc0c 150 {
chana_jo 0:d2b5a1e8fc0c 151 led=!led;
chana_jo 0:d2b5a1e8fc0c 152 }
chana_jo 0:d2b5a1e8fc0c 153 else if(checkplay==0)//led off
chana_jo 0:d2b5a1e8fc0c 154 {
chana_jo 0:d2b5a1e8fc0c 155 led=0;
chana_jo 0:d2b5a1e8fc0c 156 }
chana_jo 0:d2b5a1e8fc0c 157
chana_jo 0:d2b5a1e8fc0c 158 }
Tantep 1:19138bfe23c9 159
chana_jo 0:d2b5a1e8fc0c 160 void test()
chana_jo 0:d2b5a1e8fc0c 161 {
chana_jo 0:d2b5a1e8fc0c 162 TS_StateTypeDef TS_State;
Tantep 1:19138bfe23c9 163 /*uint8_t status;//ไม่ได้ใช้สร้างไว้ก่อน*/
chana_jo 0:d2b5a1e8fc0c 164 ts.GetState(&TS_State);
chana_jo 0:d2b5a1e8fc0c 165 if((TS_State.touchDetected))//รับtouchอะไรก็ตาม จะเข้าfunctionนี้
chana_jo 0:d2b5a1e8fc0c 166 {
chana_jo 0:d2b5a1e8fc0c 167
chana_jo 0:d2b5a1e8fc0c 168 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 169 {
chana_jo 0:d2b5a1e8fc0c 170 if(checkplay==0)
chana_jo 0:d2b5a1e8fc0c 171 {
chana_jo 0:d2b5a1e8fc0c 172 checkplay=1;
chana_jo 0:d2b5a1e8fc0c 173 }
chana_jo 0:d2b5a1e8fc0c 174 else if(checkplay==1)
chana_jo 0:d2b5a1e8fc0c 175 {
chana_jo 0:d2b5a1e8fc0c 176 checkplay=0;
chana_jo 0:d2b5a1e8fc0c 177 }
chana_jo 0:d2b5a1e8fc0c 178 }
chana_jo 0:d2b5a1e8fc0c 179 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 180 {
chana_jo 0:d2b5a1e8fc0c 181 page=page-1;
chana_jo 0:d2b5a1e8fc0c 182 if(page<1)
chana_jo 0:d2b5a1e8fc0c 183 {
chana_jo 0:d2b5a1e8fc0c 184 page=5;
chana_jo 0:d2b5a1e8fc0c 185 }
chana_jo 0:d2b5a1e8fc0c 186 pc.printf("change to page %d",page);
chana_jo 0:d2b5a1e8fc0c 187
chana_jo 0:d2b5a1e8fc0c 188 }
chana_jo 0:d2b5a1e8fc0c 189 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 190 {
chana_jo 0:d2b5a1e8fc0c 191 page=page+1;
chana_jo 0:d2b5a1e8fc0c 192 if(page>5)
chana_jo 0:d2b5a1e8fc0c 193 {
chana_jo 0:d2b5a1e8fc0c 194 page=1;
chana_jo 0:d2b5a1e8fc0c 195 }
chana_jo 0:d2b5a1e8fc0c 196 pc.printf("change to page %d",page);
chana_jo 0:d2b5a1e8fc0c 197
chana_jo 0:d2b5a1e8fc0c 198 }
chana_jo 0:d2b5a1e8fc0c 199 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 200 {
Tantep 1:19138bfe23c9 201
chana_jo 0:d2b5a1e8fc0c 202 if(beat[page-1][0]==0)
chana_jo 0:d2b5a1e8fc0c 203 {
chana_jo 0:d2b5a1e8fc0c 204 beat[page-1][0]=1;
Tantep 1:19138bfe23c9 205
Tantep 1:19138bfe23c9 206 }
chana_jo 0:d2b5a1e8fc0c 207 else if(beat[page-1][0]==1)
chana_jo 0:d2b5a1e8fc0c 208 {
chana_jo 0:d2b5a1e8fc0c 209 beat[page-1][0]=0;
chana_jo 0:d2b5a1e8fc0c 210 }
Tantep 1:19138bfe23c9 211
Tantep 1:19138bfe23c9 212
Tantep 1:19138bfe23c9 213
chana_jo 0:d2b5a1e8fc0c 214 }
chana_jo 0:d2b5a1e8fc0c 215 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 216 {
chana_jo 0:d2b5a1e8fc0c 217 if(beat[page-1][1]==0)
chana_jo 0:d2b5a1e8fc0c 218 {
chana_jo 0:d2b5a1e8fc0c 219 beat[page-1][1]=1;
chana_jo 0:d2b5a1e8fc0c 220 }
chana_jo 0:d2b5a1e8fc0c 221 else if(beat[page-1][1]==1)
chana_jo 0:d2b5a1e8fc0c 222 {
chana_jo 0:d2b5a1e8fc0c 223 beat[page-1][1]=0;
chana_jo 0:d2b5a1e8fc0c 224 }
chana_jo 0:d2b5a1e8fc0c 225
chana_jo 0:d2b5a1e8fc0c 226 }
chana_jo 0:d2b5a1e8fc0c 227 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 228 {
chana_jo 0:d2b5a1e8fc0c 229 if(beat[page-1][2]==0)
chana_jo 0:d2b5a1e8fc0c 230 {
chana_jo 0:d2b5a1e8fc0c 231 beat[page-1][2]=1;
chana_jo 0:d2b5a1e8fc0c 232 }
chana_jo 0:d2b5a1e8fc0c 233 else if(beat[page-1][2]==1)
chana_jo 0:d2b5a1e8fc0c 234 {
chana_jo 0:d2b5a1e8fc0c 235 beat[page-1][2]=0;
chana_jo 0:d2b5a1e8fc0c 236 }
chana_jo 0:d2b5a1e8fc0c 237
chana_jo 0:d2b5a1e8fc0c 238 }
chana_jo 0:d2b5a1e8fc0c 239 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 240 {
chana_jo 0:d2b5a1e8fc0c 241 if(beat[page-1][3]==0)
chana_jo 0:d2b5a1e8fc0c 242 {
chana_jo 0:d2b5a1e8fc0c 243 beat[page-1][3]=1;
chana_jo 0:d2b5a1e8fc0c 244 }
chana_jo 0:d2b5a1e8fc0c 245 else if(beat[page-1][3]==1)
chana_jo 0:d2b5a1e8fc0c 246 {
chana_jo 0:d2b5a1e8fc0c 247 beat[page-1][3]=0;
chana_jo 0:d2b5a1e8fc0c 248 }
chana_jo 0:d2b5a1e8fc0c 249
chana_jo 0:d2b5a1e8fc0c 250 }
chana_jo 0:d2b5a1e8fc0c 251 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 252 {
chana_jo 0:d2b5a1e8fc0c 253 if(beat[page-1][4]==0)
chana_jo 0:d2b5a1e8fc0c 254 {
chana_jo 0:d2b5a1e8fc0c 255 beat[page-1][4]=1;
chana_jo 0:d2b5a1e8fc0c 256 }
chana_jo 0:d2b5a1e8fc0c 257 else if(beat[page-1][4]==1)
chana_jo 0:d2b5a1e8fc0c 258 {
chana_jo 0:d2b5a1e8fc0c 259 beat[page-1][4]=0;
chana_jo 0:d2b5a1e8fc0c 260 }
chana_jo 0:d2b5a1e8fc0c 261
chana_jo 0:d2b5a1e8fc0c 262 }
chana_jo 0:d2b5a1e8fc0c 263 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 264 {
chana_jo 0:d2b5a1e8fc0c 265 if(beat[page-1][5]==0)
chana_jo 0:d2b5a1e8fc0c 266 {
chana_jo 0:d2b5a1e8fc0c 267 beat[page-1][5]=1;
chana_jo 0:d2b5a1e8fc0c 268 }
chana_jo 0:d2b5a1e8fc0c 269 else if(beat[page-1][5]==1)
chana_jo 0:d2b5a1e8fc0c 270 {
chana_jo 0:d2b5a1e8fc0c 271 beat[page-1][5]=0;
chana_jo 0:d2b5a1e8fc0c 272 }
chana_jo 0:d2b5a1e8fc0c 273
chana_jo 0:d2b5a1e8fc0c 274 }
chana_jo 0:d2b5a1e8fc0c 275 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 276 {
chana_jo 0:d2b5a1e8fc0c 277 if(beat[page-1][6]==0)
chana_jo 0:d2b5a1e8fc0c 278 {
chana_jo 0:d2b5a1e8fc0c 279 beat[page-1][6]=1;
chana_jo 0:d2b5a1e8fc0c 280 }
chana_jo 0:d2b5a1e8fc0c 281 else if(beat[page-1][6]==1)
chana_jo 0:d2b5a1e8fc0c 282 {
chana_jo 0:d2b5a1e8fc0c 283 beat[page-1][6]=0;
chana_jo 0:d2b5a1e8fc0c 284 }
chana_jo 0:d2b5a1e8fc0c 285
chana_jo 0:d2b5a1e8fc0c 286 }
chana_jo 0:d2b5a1e8fc0c 287 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 288 {
chana_jo 0:d2b5a1e8fc0c 289 if(beat[page-1][7]==0)
chana_jo 0:d2b5a1e8fc0c 290 {
chana_jo 0:d2b5a1e8fc0c 291 beat[page-1][7]=1;
chana_jo 0:d2b5a1e8fc0c 292 }
chana_jo 0:d2b5a1e8fc0c 293 else if(beat[page-1][7]==1)
chana_jo 0:d2b5a1e8fc0c 294 {
chana_jo 0:d2b5a1e8fc0c 295 beat[page-1][7]=0;
chana_jo 0:d2b5a1e8fc0c 296 }
chana_jo 0:d2b5a1e8fc0c 297
chana_jo 0:d2b5a1e8fc0c 298 }
chana_jo 0:d2b5a1e8fc0c 299
chana_jo 0:d2b5a1e8fc0c 300 pc.printf("at page :%d ",page); //ไว้check uart เฉยๆ
chana_jo 0:d2b5a1e8fc0c 301 pc.printf("%d",beat[page-1][0]);
chana_jo 0:d2b5a1e8fc0c 302 pc.printf("%d",beat[page-1][1]);
chana_jo 0:d2b5a1e8fc0c 303 pc.printf("%d",beat[page-1][2]);
chana_jo 0:d2b5a1e8fc0c 304 pc.printf("%d",beat[page-1][3]);
chana_jo 0:d2b5a1e8fc0c 305 pc.printf("%d",beat[page-1][4]);
chana_jo 0:d2b5a1e8fc0c 306 pc.printf("%d",beat[page-1][5]);
chana_jo 0:d2b5a1e8fc0c 307 pc.printf("%d",beat[page-1][6]);
chana_jo 0:d2b5a1e8fc0c 308 pc.printf("%d",beat[page-1][7]);
chana_jo 0:d2b5a1e8fc0c 309 pc.printf("\n\r");
chana_jo 0:d2b5a1e8fc0c 310 }
chana_jo 0:d2b5a1e8fc0c 311 }
chana_jo 0:d2b5a1e8fc0c 312
chana_jo 0:d2b5a1e8fc0c 313 void knob()//read analog
chana_jo 0:d2b5a1e8fc0c 314 {
chana_jo 0:d2b5a1e8fc0c 315
chana_jo 0:d2b5a1e8fc0c 316 volume=(volumeknob.read()*100);//0to100
chana_jo 0:d2b5a1e8fc0c 317 tempo=(tempoknob.read()*100);//problematic********************************************
chana_jo 0:d2b5a1e8fc0c 318
Tantep 1:19138bfe23c9 319 sprintf(tempostr,"%1.1f",tempo);
chana_jo 0:d2b5a1e8fc0c 320 sprintf(volumechar,"%1.1f",volume);
Tantep 1:19138bfe23c9 321 pc.printf("tempo = %s \n\r",tempostr); //print ในuart ถูก
chana_jo 0:d2b5a1e8fc0c 322 pc.printf("volume = %s\n\r",volumechar);
chana_jo 0:d2b5a1e8fc0c 323
chana_jo 0:d2b5a1e8fc0c 324 }
chana_jo 0:d2b5a1e8fc0c 325
chana_jo 0:d2b5a1e8fc0c 326
chana_jo 0:d2b5a1e8fc0c 327
chana_jo 0:d2b5a1e8fc0c 328
chana_jo 0:d2b5a1e8fc0c 329 void screen()// function for display
chana_jo 0:d2b5a1e8fc0c 330 {
chana_jo 0:d2b5a1e8fc0c 331 lcd.SetBackColor(LCD_COLOR_BLUE);
chana_jo 0:d2b5a1e8fc0c 332 lcd.SetTextColor(LCD_COLOR_BROWN);//play button
chana_jo 0:d2b5a1e8fc0c 333 lcd.FillRect(24,198,50,50);
chana_jo 0:d2b5a1e8fc0c 334 lcd.SetTextColor(LCD_COLOR_YELLOW);//previous page
chana_jo 0:d2b5a1e8fc0c 335 lcd.FillRect(24,136,50,25);
chana_jo 0:d2b5a1e8fc0c 336 lcd.SetTextColor(LCD_COLOR_YELLOW);// next page
chana_jo 0:d2b5a1e8fc0c 337 lcd.FillRect(406,136,50,25);
chana_jo 0:d2b5a1e8fc0c 338
chana_jo 0:d2b5a1e8fc0c 339 sprintf(strvolume,"%s","Volume "); //display volume
chana_jo 0:d2b5a1e8fc0c 340 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 341 lcd.DisplayStringAt(24,LINE(1),(uint8_t*)strvolume,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 342 sprintf(volumechar,"%s",volumechar);
chana_jo 0:d2b5a1e8fc0c 343 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 344 lcd.DisplayStringAt(24,LINE(2),(uint8_t*)volumechar,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 345
chana_jo 0:d2b5a1e8fc0c 346 sprintf(strtempo,"%s","Tempo ");
chana_jo 0:d2b5a1e8fc0c 347 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 348 lcd.DisplayStringAt(24,LINE(1),(uint8_t*)strtempo,RIGHT_MODE);
Tantep 1:19138bfe23c9 349 sprintf(tempostr,"%1.1f",tempo); ////////////////////////////////////////////display tempo on lcd ไม่ถูก
chana_jo 0:d2b5a1e8fc0c 350 lcd.SetTextColor(LCD_COLOR_BLACK);
Tantep 1:19138bfe23c9 351 lcd.DisplayStringAt(24,LINE(2),(uint8_t*)tempostr,RIGHT_MODE);
chana_jo 0:d2b5a1e8fc0c 352
chana_jo 0:d2b5a1e8fc0c 353
chana_jo 0:d2b5a1e8fc0c 354
chana_jo 0:d2b5a1e8fc0c 355
chana_jo 0:d2b5a1e8fc0c 356 if(page==1) //พวกนี้คือแสดงหน้าว่าอยู่หน้าอะไร
chana_jo 0:d2b5a1e8fc0c 357 {
Tantep 1:19138bfe23c9 358 sprintf(currentpage,"%s","Current page is Kick ");
chana_jo 0:d2b5a1e8fc0c 359 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 360 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
Tantep 1:19138bfe23c9 361
chana_jo 0:d2b5a1e8fc0c 362 }
chana_jo 0:d2b5a1e8fc0c 363 else if(page==2)
chana_jo 0:d2b5a1e8fc0c 364 {
Tantep 1:19138bfe23c9 365 sprintf(currentpage,"%s","Current page is Snare ");
chana_jo 0:d2b5a1e8fc0c 366 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 367 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
Tantep 1:19138bfe23c9 368
chana_jo 0:d2b5a1e8fc0c 369 }
chana_jo 0:d2b5a1e8fc0c 370 else if(page==3)
chana_jo 0:d2b5a1e8fc0c 371 {
Tantep 1:19138bfe23c9 372 sprintf(currentpage,"%s","Current page is Clap ");
chana_jo 0:d2b5a1e8fc0c 373 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 374 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 375 }
chana_jo 0:d2b5a1e8fc0c 376 else if(page==4)
chana_jo 0:d2b5a1e8fc0c 377 {
Tantep 1:19138bfe23c9 378 sprintf(currentpage,"%s","Current page is Close HiHat ");
chana_jo 0:d2b5a1e8fc0c 379 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 380 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 381 }
chana_jo 0:d2b5a1e8fc0c 382 else if(page==5)
chana_jo 0:d2b5a1e8fc0c 383 {
Tantep 1:19138bfe23c9 384 sprintf(currentpage,"%s","Current page is Open HiHat ");
chana_jo 0:d2b5a1e8fc0c 385 lcd.SetTextColor(LCD_COLOR_BLACK);
chana_jo 0:d2b5a1e8fc0c 386 lcd.DisplayStringAt(24,LINE(3),(uint8_t*)currentpage,LEFT_MODE);
chana_jo 0:d2b5a1e8fc0c 387 }
chana_jo 0:d2b5a1e8fc0c 388
chana_jo 0:d2b5a1e8fc0c 389 // พวกนี้คือเปลี่ยนปุ่มแต่ละ beat
chana_jo 0:d2b5a1e8fc0c 390 if(beat[page-1][0]==0)
chana_jo 0:d2b5a1e8fc0c 391 {
chana_jo 0:d2b5a1e8fc0c 392 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 393 lcd.FillRect(98,198,24,50);
chana_jo 0:d2b5a1e8fc0c 394 }
chana_jo 0:d2b5a1e8fc0c 395 if(beat[page-1][0]==1)
chana_jo 0:d2b5a1e8fc0c 396 {
chana_jo 0:d2b5a1e8fc0c 397 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 398 lcd.FillRect(98,198,24,50);
chana_jo 0:d2b5a1e8fc0c 399 }
chana_jo 0:d2b5a1e8fc0c 400 if(beat[page-1][1]==0)
chana_jo 0:d2b5a1e8fc0c 401 {
chana_jo 0:d2b5a1e8fc0c 402 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 403 lcd.FillRect(142,198,24,50);
chana_jo 0:d2b5a1e8fc0c 404 }
chana_jo 0:d2b5a1e8fc0c 405 if(beat[page-1][1]==1)
chana_jo 0:d2b5a1e8fc0c 406 {
chana_jo 0:d2b5a1e8fc0c 407 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 408 lcd.FillRect(142,198,24,50);
chana_jo 0:d2b5a1e8fc0c 409 }
chana_jo 0:d2b5a1e8fc0c 410 if(beat[page-1][2]==0)
chana_jo 0:d2b5a1e8fc0c 411 {
chana_jo 0:d2b5a1e8fc0c 412 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 413 lcd.FillRect(186,198,24,50);
chana_jo 0:d2b5a1e8fc0c 414 }
chana_jo 0:d2b5a1e8fc0c 415 if(beat[page-1][2]==1)
chana_jo 0:d2b5a1e8fc0c 416 {
chana_jo 0:d2b5a1e8fc0c 417 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 418 lcd.FillRect(186,198,24,50);
chana_jo 0:d2b5a1e8fc0c 419 }
chana_jo 0:d2b5a1e8fc0c 420 if(beat[page-1][3]==0)
chana_jo 0:d2b5a1e8fc0c 421 {
chana_jo 0:d2b5a1e8fc0c 422 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 423 lcd.FillRect(230,198,24,50);
chana_jo 0:d2b5a1e8fc0c 424 }
chana_jo 0:d2b5a1e8fc0c 425 if(beat[page-1][3]==1)
chana_jo 0:d2b5a1e8fc0c 426 {
chana_jo 0:d2b5a1e8fc0c 427 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 428 lcd.FillRect(230,198,24,50);
chana_jo 0:d2b5a1e8fc0c 429 }
chana_jo 0:d2b5a1e8fc0c 430 if(beat[page-1][4]==0)
chana_jo 0:d2b5a1e8fc0c 431 {
chana_jo 0:d2b5a1e8fc0c 432 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 433 lcd.FillRect(274,198,24,50);
chana_jo 0:d2b5a1e8fc0c 434 }
chana_jo 0:d2b5a1e8fc0c 435 if(beat[page-1][4]==1)
chana_jo 0:d2b5a1e8fc0c 436 {
chana_jo 0:d2b5a1e8fc0c 437 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 438 lcd.FillRect(274,198,24,50);
chana_jo 0:d2b5a1e8fc0c 439 }
chana_jo 0:d2b5a1e8fc0c 440 if(beat[page-1][5]==0)
chana_jo 0:d2b5a1e8fc0c 441 {
chana_jo 0:d2b5a1e8fc0c 442 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 443 lcd.FillRect(318,198,24,50);
chana_jo 0:d2b5a1e8fc0c 444 }
chana_jo 0:d2b5a1e8fc0c 445 if(beat[page-1][5]==1)
chana_jo 0:d2b5a1e8fc0c 446 {
chana_jo 0:d2b5a1e8fc0c 447 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 448 lcd.FillRect(318,198,24,50);
chana_jo 0:d2b5a1e8fc0c 449 }
chana_jo 0:d2b5a1e8fc0c 450 if(beat[page-1][6]==0)
chana_jo 0:d2b5a1e8fc0c 451 {
chana_jo 0:d2b5a1e8fc0c 452 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 453 lcd.FillRect(362,198,24,50);
chana_jo 0:d2b5a1e8fc0c 454 }
chana_jo 0:d2b5a1e8fc0c 455 if(beat[page-1][6]==1)
chana_jo 0:d2b5a1e8fc0c 456 {
chana_jo 0:d2b5a1e8fc0c 457 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 458 lcd.FillRect(362,198,24,50);
chana_jo 0:d2b5a1e8fc0c 459 }
chana_jo 0:d2b5a1e8fc0c 460 if(beat[page-1][7]==0)
chana_jo 0:d2b5a1e8fc0c 461 {
chana_jo 0:d2b5a1e8fc0c 462 lcd.SetTextColor(LCD_COLOR_LIGHTRED);
chana_jo 0:d2b5a1e8fc0c 463 lcd.FillRect(406,198,24,50);
chana_jo 0:d2b5a1e8fc0c 464 }
chana_jo 0:d2b5a1e8fc0c 465 if(beat[page-1][7]==1)
chana_jo 0:d2b5a1e8fc0c 466 {
chana_jo 0:d2b5a1e8fc0c 467 lcd.SetTextColor(LCD_COLOR_GREEN);
chana_jo 0:d2b5a1e8fc0c 468 lcd.FillRect(406,198,24,50);
chana_jo 0:d2b5a1e8fc0c 469 }
chana_jo 0:d2b5a1e8fc0c 470
chana_jo 0:d2b5a1e8fc0c 471 }
chana_jo 0:d2b5a1e8fc0c 472