
11
Dependencies: TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
main.cpp@1:19138bfe23c9, 2019-05-03 (annotated)
- Committer:
- Tantep
- Date:
- Fri May 03 13:27:39 2019 +0000
- Revision:
- 1:19138bfe23c9
- Parent:
- 0:d2b5a1e8fc0c
111
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); |
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 |