
ver1 one at the time
Dependencies: TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
main.cpp@2:58378cb7e76f, 2019-05-04 (annotated)
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
chana_jo | 0:d2b5a1e8fc0c | 1 | #include "mbed.h" |
chana_jo | 0:d2b5a1e8fc0c | 2 | #include "TS_DISCO_F746NG.h" |
chana_jo | 0:d2b5a1e8fc0c | 3 | #include "LCD_DISCO_F746NG.h" |
Tantep | 1:19138bfe23c9 | 4 | #include"sn44.h" |
Tantep | 1:19138bfe23c9 | 5 | #include"cl44.h" |
Tantep | 1:19138bfe23c9 | 6 | #include"clhh44.h" |
Tantep | 1:19138bfe23c9 | 7 | #include"ophh44.h" |
Tantep | 1:19138bfe23c9 | 8 | #include"kick44.h" |
chana_jo | 0:d2b5a1e8fc0c | 9 | |
Tantep | 1:19138bfe23c9 | 10 | #define sample_freq 16000.0 |
chana_jo | 0:d2b5a1e8fc0c | 11 | DigitalOut led(LED1); |
chana_jo | 0:d2b5a1e8fc0c | 12 | LCD_DISCO_F746NG lcd; |
chana_jo | 0:d2b5a1e8fc0c | 13 | TS_DISCO_F746NG ts; |
chana_jo | 0:d2b5a1e8fc0c | 14 | AnalogIn tempoknob(A1); |
chana_jo | 0:d2b5a1e8fc0c | 15 | AnalogIn volumeknob(A0); |
Tantep | 1:19138bfe23c9 | 16 | PwmOut speaker(D1); |
chana_jo | 0:d2b5a1e8fc0c | 17 | Serial pc(USBTX, USBRX); |
chana_jo | 2:58378cb7e76f | 18 | Ticker re,er,rr,ee,sn44tick,cl44tick,clhh44tick,ophh44tick,kick44tick,testprint;//timer ไว้ attach ตอนplay audio กับไว้รับปุ่ม |
chana_jo | 0:d2b5a1e8fc0c | 19 | |
chana_jo | 0:d2b5a1e8fc0c | 20 | int checkplay=1,beat[5][8],page=1; |
chana_jo | 2:58378cb7e76f | 21 | int tracking; |
Tantep | 1:19138bfe23c9 | 22 | char currentpage[50],volumechar[50],strvolume[50],strtempo[50],tempostr[50]; //สร้างไว้ให้เขียนอักษรได้เฉยๆ |
chana_jo | 0:d2b5a1e8fc0c | 23 | float volume,tempo; |
chana_jo | 2:58378cb7e76f | 24 | float speed; //tempo converted to sec |
chana_jo | 2:58378cb7e76f | 25 | int h,i,j,k,l; |
chana_jo | 0:d2b5a1e8fc0c | 26 | void test(void); //function for touchscreen |
chana_jo | 0:d2b5a1e8fc0c | 27 | void play(void);// function for play |
chana_jo | 0:d2b5a1e8fc0c | 28 | void screen(void);//function for display |
chana_jo | 0:d2b5a1e8fc0c | 29 | void knob(void);// read knob |
chana_jo | 2:58378cb7e76f | 30 | void testbeat1(void); |
chana_jo | 2:58378cb7e76f | 31 | void testbeat2(void); |
chana_jo | 0:d2b5a1e8fc0c | 32 | |
chana_jo | 0:d2b5a1e8fc0c | 33 | int main() |
chana_jo | 0:d2b5a1e8fc0c | 34 | { |
chana_jo | 0:d2b5a1e8fc0c | 35 | lcd.Clear(LCD_COLOR_BLUE); |
chana_jo | 0:d2b5a1e8fc0c | 36 | ee.attach(&screen, 0.03); |
chana_jo | 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 |