Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@11:ba1906f151fd, 2019-04-29 (annotated)
- Committer:
- ml16c5l
- Date:
- Mon Apr 29 23:57:59 2019 +0000
- Revision:
- 11:ba1906f151fd
- Parent:
- 9:192ad897ec95
- Child:
- 12:ab3f5fcc8d3b
MENU
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ml16c5l | 1:63db7ec60700 | 1 | /* |
ml16c5l | 1:63db7ec60700 | 2 | ELEC2645 Embedded Systems Project |
ml16c5l | 1:63db7ec60700 | 3 | School of Electronic & Electrical Engineering |
ml16c5l | 1:63db7ec60700 | 4 | University of Leeds |
ml16c5l | 3:5d860d0d589e | 5 | Name: Caiwenjing Liu |
ml16c5l | 3:5d860d0d589e | 6 | Username:ml16c5l |
ml16c5l | 3:5d860d0d589e | 7 | Student ID Number: 201165261 |
ml16c5l | 3:5d860d0d589e | 8 | Date: 09/04/2019 |
ml16c5l | 1:63db7ec60700 | 9 | */ |
ml16c5l | 1:63db7ec60700 | 10 | |
ml16c5l | 3:5d860d0d589e | 11 | ///////// pre-processor directives //////// |
ml16c5l | 1:63db7ec60700 | 12 | #include "mbed.h" |
ml16c5l | 1:63db7ec60700 | 13 | #include "Gamepad.h" |
ml16c5l | 1:63db7ec60700 | 14 | #include "N5110.h" |
ml16c5l | 9:192ad897ec95 | 15 | #include "CopterEngine.h" |
ml16c5l | 3:5d860d0d589e | 16 | |
ml16c5l | 3:5d860d0d589e | 17 | |
ml16c5l | 1:63db7ec60700 | 18 | |
ml16c5l | 1:63db7ec60700 | 19 | |
ml16c5l | 9:192ad897ec95 | 20 | |
ml16c5l | 9:192ad897ec95 | 21 | |
ml16c5l | 9:192ad897ec95 | 22 | #define WALL_SIZE 3 |
ml16c5l | 11:ba1906f151fd | 23 | #define COPTER_WIDTH 15 |
ml16c5l | 11:ba1906f151fd | 24 | #define COPTER_HEIGHT 10 |
ml16c5l | 11:ba1906f151fd | 25 | #define COPTER_SPEED 1 |
ml16c5l | 1:63db7ec60700 | 26 | /////////////// structs ///////////////// |
ml16c5l | 1:63db7ec60700 | 27 | struct UserInput { |
ml16c5l | 1:63db7ec60700 | 28 | Direction d; |
ml16c5l | 1:63db7ec60700 | 29 | float mag; |
ml16c5l | 1:63db7ec60700 | 30 | }; |
ml16c5l | 1:63db7ec60700 | 31 | /////////////// objects /////////////// |
ml16c5l | 1:63db7ec60700 | 32 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
ml16c5l | 3:5d860d0d589e | 33 | Gamepad pad; |
ml16c5l | 9:192ad897ec95 | 34 | CopterEngine copter; |
ml16c5l | 9:192ad897ec95 | 35 | extern N5110 lcd; |
ml16c5l | 9:192ad897ec95 | 36 | |
ml16c5l | 9:192ad897ec95 | 37 | |
ml16c5l | 9:192ad897ec95 | 38 | |
ml16c5l | 9:192ad897ec95 | 39 | |
ml16c5l | 9:192ad897ec95 | 40 | |
ml16c5l | 3:5d860d0d589e | 41 | |
ml16c5l | 4:2848b366ee3d | 42 | |
ml16c5l | 4:2848b366ee3d | 43 | |
ml16c5l | 3:5d860d0d589e | 44 | ///////////// prototypes /////////////// |
ml16c5l | 3:5d860d0d589e | 45 | void init(); |
ml16c5l | 3:5d860d0d589e | 46 | void update_game(UserInput input); |
ml16c5l | 3:5d860d0d589e | 47 | void render(); |
ml16c5l | 3:5d860d0d589e | 48 | void welcome(); |
ml16c5l | 11:ba1906f151fd | 49 | void menu(); |
ml16c5l | 11:ba1906f151fd | 50 | |
ml16c5l | 11:ba1906f151fd | 51 | |
ml16c5l | 3:5d860d0d589e | 52 | |
ml16c5l | 9:192ad897ec95 | 53 | ///////////// functions //////////////// |
ml16c5l | 4:2848b366ee3d | 54 | |
ml16c5l | 4:2848b366ee3d | 55 | |
ml16c5l | 3:5d860d0d589e | 56 | int main() |
ml16c5l | 3:5d860d0d589e | 57 | { |
ml16c5l | 11:ba1906f151fd | 58 | |
ml16c5l | 3:5d860d0d589e | 59 | int fps = 8; // frames per second |
ml16c5l | 3:5d860d0d589e | 60 | init(); // initialise and then display welcome screen... |
ml16c5l | 11:ba1906f151fd | 61 | welcome(); |
ml16c5l | 11:ba1906f151fd | 62 | menu(); // waiting for the user to start |
ml16c5l | 9:192ad897ec95 | 63 | render(); // first draw the initial frame |
ml16c5l | 3:5d860d0d589e | 64 | wait(1.0f/fps); // and wait for one frame period |
ml16c5l | 9:192ad897ec95 | 65 | |
ml16c5l | 3:5d860d0d589e | 66 | // game loop - read input, update the game state and render the display |
ml16c5l | 3:5d860d0d589e | 67 | while (1) { |
ml16c5l | 9:192ad897ec95 | 68 | |
ml16c5l | 9:192ad897ec95 | 69 | lcd.clear(); |
ml16c5l | 9:192ad897ec95 | 70 | |
ml16c5l | 9:192ad897ec95 | 71 | int a = copter.GameOver(); |
ml16c5l | 9:192ad897ec95 | 72 | if(a == 1) |
ml16c5l | 9:192ad897ec95 | 73 | { a=0; |
ml16c5l | 9:192ad897ec95 | 74 | lcd.clear(); |
ml16c5l | 9:192ad897ec95 | 75 | lcd.printString("GAME OVER", 10,1); |
ml16c5l | 9:192ad897ec95 | 76 | lcd.refresh(); |
ml16c5l | 9:192ad897ec95 | 77 | int h=0; |
ml16c5l | 9:192ad897ec95 | 78 | for(h=1; h<=500; h++){ |
ml16c5l | 9:192ad897ec95 | 79 | pad.tone(h,0.5); |
ml16c5l | 9:192ad897ec95 | 80 | } |
ml16c5l | 9:192ad897ec95 | 81 | |
ml16c5l | 9:192ad897ec95 | 82 | wait(1.0); |
ml16c5l | 9:192ad897ec95 | 83 | lcd.printString("PRESS BACK" ,13,3); |
ml16c5l | 9:192ad897ec95 | 84 | lcd.printString("RESTART",20,4); |
ml16c5l | 9:192ad897ec95 | 85 | lcd.refresh(); |
ml16c5l | 9:192ad897ec95 | 86 | while (pad.check_event(Gamepad::BACK_PRESSED)== false) |
ml16c5l | 9:192ad897ec95 | 87 | { |
ml16c5l | 9:192ad897ec95 | 88 | |
ml16c5l | 9:192ad897ec95 | 89 | pad.leds_on(); |
ml16c5l | 9:192ad897ec95 | 90 | wait(0.1); |
ml16c5l | 9:192ad897ec95 | 91 | } |
ml16c5l | 9:192ad897ec95 | 92 | |
ml16c5l | 9:192ad897ec95 | 93 | init(); |
ml16c5l | 11:ba1906f151fd | 94 | wait(1.0); |
ml16c5l | 11:ba1906f151fd | 95 | //menu(); |
ml16c5l | 11:ba1906f151fd | 96 | lcd.clear(); |
ml16c5l | 11:ba1906f151fd | 97 | if ( pad.check_event(Gamepad::START_PRESSED) == true){ |
ml16c5l | 11:ba1906f151fd | 98 | lcd.clear(); |
ml16c5l | 9:192ad897ec95 | 99 | welcome(); |
ml16c5l | 11:ba1906f151fd | 100 | lcd.refresh(); |
ml16c5l | 11:ba1906f151fd | 101 | } else if (pad.check_event(Gamepad::START_PRESSED) == false){ |
ml16c5l | 11:ba1906f151fd | 102 | lcd.clear(); |
ml16c5l | 11:ba1906f151fd | 103 | menu(); |
ml16c5l | 11:ba1906f151fd | 104 | } |
ml16c5l | 9:192ad897ec95 | 105 | render(); |
ml16c5l | 9:192ad897ec95 | 106 | wait(1.0f/fps); |
ml16c5l | 9:192ad897ec95 | 107 | } |
ml16c5l | 9:192ad897ec95 | 108 | |
ml16c5l | 3:5d860d0d589e | 109 | copter.read_input(pad); |
ml16c5l | 3:5d860d0d589e | 110 | copter.update(pad); |
ml16c5l | 9:192ad897ec95 | 111 | |
ml16c5l | 3:5d860d0d589e | 112 | render(); |
ml16c5l | 3:5d860d0d589e | 113 | wait(1.0f/fps); |
ml16c5l | 9:192ad897ec95 | 114 | |
ml16c5l | 3:5d860d0d589e | 115 | } |
ml16c5l | 9:192ad897ec95 | 116 | } |
ml16c5l | 3:5d860d0d589e | 117 | |
ml16c5l | 3:5d860d0d589e | 118 | // initialies all classes and libraries |
ml16c5l | 3:5d860d0d589e | 119 | void init() |
ml16c5l | 3:5d860d0d589e | 120 | { |
ml16c5l | 9:192ad897ec95 | 121 | // need to initialise LCD and Gamepad |
ml16c5l | 3:5d860d0d589e | 122 | lcd.init(); |
ml16c5l | 3:5d860d0d589e | 123 | pad.init(); |
ml16c5l | 9:192ad897ec95 | 124 | |
ml16c5l | 11:ba1906f151fd | 125 | copter.init(COPTER_WIDTH,COPTER_HEIGHT,WALL_SIZE,COPTER_SPEED); |
ml16c5l | 3:5d860d0d589e | 126 | |
ml16c5l | 3:5d860d0d589e | 127 | } |
ml16c5l | 3:5d860d0d589e | 128 | |
ml16c5l | 3:5d860d0d589e | 129 | // this function draws each frame on the LCD |
ml16c5l | 3:5d860d0d589e | 130 | void render() |
ml16c5l | 3:5d860d0d589e | 131 | { |
ml16c5l | 3:5d860d0d589e | 132 | // clear screen, re-draw and refresh |
ml16c5l | 9:192ad897ec95 | 133 | lcd.clear(); |
ml16c5l | 11:ba1906f151fd | 134 | copter.draw(lcd); |
ml16c5l | 3:5d860d0d589e | 135 | lcd.refresh(); |
ml16c5l | 3:5d860d0d589e | 136 | } |
ml16c5l | 3:5d860d0d589e | 137 | |
ml16c5l | 4:2848b366ee3d | 138 | |
ml16c5l | 9:192ad897ec95 | 139 | // simple splash screen displayed on start-up |
ml16c5l | 9:192ad897ec95 | 140 | void welcome() { |
ml16c5l | 11:ba1906f151fd | 141 | |
ml16c5l | 11:ba1906f151fd | 142 | lcd.clear(); |
ml16c5l | 11:ba1906f151fd | 143 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { |
ml16c5l | 11:ba1906f151fd | 144 | |
ml16c5l | 4:2848b366ee3d | 145 | pad.leds_on(); |
ml16c5l | 11:ba1906f151fd | 146 | lcd.drawLine(25,1,26,1,1); |
ml16c5l | 11:ba1906f151fd | 147 | |
ml16c5l | 11:ba1906f151fd | 148 | lcd.drawLine(23,2,27,2,1); |
ml16c5l | 11:ba1906f151fd | 149 | lcd.drawLine(39,2,39,2,1); |
ml16c5l | 11:ba1906f151fd | 150 | |
ml16c5l | 11:ba1906f151fd | 151 | lcd.drawLine(22,3,28,3,1); |
ml16c5l | 11:ba1906f151fd | 152 | lcd.drawLine(38,3,39,3,1); |
ml16c5l | 11:ba1906f151fd | 153 | |
ml16c5l | 11:ba1906f151fd | 154 | lcd.drawLine(21,4,23,4,1); |
ml16c5l | 11:ba1906f151fd | 155 | lcd.drawLine(27,4,28,4,1); |
ml16c5l | 11:ba1906f151fd | 156 | lcd.drawLine(38,4,38,4,1); |
ml16c5l | 11:ba1906f151fd | 157 | |
ml16c5l | 11:ba1906f151fd | 158 | lcd.drawLine(21,5,22,5,1); |
ml16c5l | 11:ba1906f151fd | 159 | lcd.drawLine(38,5,38,5,1); |
ml16c5l | 11:ba1906f151fd | 160 | lcd.drawLine(50,5,51,5,1); |
ml16c5l | 11:ba1906f151fd | 161 | |
ml16c5l | 11:ba1906f151fd | 162 | lcd.drawLine(20,6,22,6,1); |
ml16c5l | 11:ba1906f151fd | 163 | lcd.drawLine(27,6,29,6,1); |
ml16c5l | 11:ba1906f151fd | 164 | lcd.drawLine(31,6,34,6,1); |
ml16c5l | 11:ba1906f151fd | 165 | lcd.drawLine(36,6,40,6,1); |
ml16c5l | 11:ba1906f151fd | 166 | lcd.drawLine(42,6,45,6,1); |
ml16c5l | 11:ba1906f151fd | 167 | lcd.drawLine(49,6,52,6,1); |
ml16c5l | 11:ba1906f151fd | 168 | |
ml16c5l | 11:ba1906f151fd | 169 | lcd.drawLine(20,7,21,7,1); |
ml16c5l | 11:ba1906f151fd | 170 | lcd.drawLine(26,7,27,7,1); |
ml16c5l | 11:ba1906f151fd | 171 | lcd.drawLine(29,7,31,7,1); |
ml16c5l | 11:ba1906f151fd | 172 | lcd.drawLine(35,7,35,7,1); |
ml16c5l | 11:ba1906f151fd | 173 | lcd.drawLine(37,7,38,7,1); |
ml16c5l | 11:ba1906f151fd | 174 | lcd.drawLine(41,7,42,7,1); |
ml16c5l | 11:ba1906f151fd | 175 | lcd.drawLine(45,7,49,7,1); |
ml16c5l | 11:ba1906f151fd | 176 | lcd.drawLine(53,7,53,7,1); |
ml16c5l | 11:ba1906f151fd | 177 | |
ml16c5l | 11:ba1906f151fd | 178 | lcd.drawLine(20,8,21,8,1); |
ml16c5l | 11:ba1906f151fd | 179 | lcd.drawLine(26,8,26,8,1); |
ml16c5l | 11:ba1906f151fd | 180 | lcd.drawLine(30,8,31,8,1); |
ml16c5l | 11:ba1906f151fd | 181 | lcd.drawLine(35,8,35,8,1); |
ml16c5l | 11:ba1906f151fd | 182 | lcd.drawLine(37,8,37,8,1); |
ml16c5l | 11:ba1906f151fd | 183 | lcd.drawLine(41,8,41,8,1); |
ml16c5l | 11:ba1906f151fd | 184 | lcd.drawLine(46,8,46,8,1); |
ml16c5l | 11:ba1906f151fd | 185 | lcd.drawLine(48,8,48,8,1); |
ml16c5l | 11:ba1906f151fd | 186 | |
ml16c5l | 11:ba1906f151fd | 187 | lcd.drawLine(20,9,22,9,1); |
ml16c5l | 11:ba1906f151fd | 188 | lcd.drawLine(26,9,26,9,1); |
ml16c5l | 11:ba1906f151fd | 189 | lcd.drawLine(30,9,31,9,1); |
ml16c5l | 11:ba1906f151fd | 190 | lcd.drawLine(34,9,35,9,1); |
ml16c5l | 11:ba1906f151fd | 191 | lcd.drawLine(37,9,37,9,1); |
ml16c5l | 11:ba1906f151fd | 192 | lcd.drawLine(41,9,45,9,1); |
ml16c5l | 11:ba1906f151fd | 193 | lcd.drawLine(48,9,48,9,1); |
ml16c5l | 11:ba1906f151fd | 194 | |
ml16c5l | 11:ba1906f151fd | 195 | lcd.drawLine(21,10,22,10,1); |
ml16c5l | 11:ba1906f151fd | 196 | lcd.drawLine(26,10,27,10,1); |
ml16c5l | 11:ba1906f151fd | 197 | lcd.drawLine(29,10,34,10,1); |
ml16c5l | 11:ba1906f151fd | 198 | lcd.drawLine(37,10,37,10,1); |
ml16c5l | 11:ba1906f151fd | 199 | lcd.drawLine(41,10,42,10,1); |
ml16c5l | 11:ba1906f151fd | 200 | lcd.drawLine(48,10,48,10,1); |
ml16c5l | 11:ba1906f151fd | 201 | |
ml16c5l | 11:ba1906f151fd | 202 | lcd.drawLine(22,11,22,11,1); |
ml16c5l | 11:ba1906f151fd | 203 | lcd.drawLine(26,11,29,11,1); |
ml16c5l | 11:ba1906f151fd | 204 | lcd.drawLine(31,11,32,11,1); |
ml16c5l | 11:ba1906f151fd | 205 | lcd.drawLine(37,11,37,11,1); |
ml16c5l | 11:ba1906f151fd | 206 | lcd.drawLine(42,11,43,11,1); |
ml16c5l | 11:ba1906f151fd | 207 | lcd.drawLine(46,11,46,11,1); |
ml16c5l | 11:ba1906f151fd | 208 | lcd.drawLine(48,11,48,11,1); |
ml16c5l | 11:ba1906f151fd | 209 | |
ml16c5l | 11:ba1906f151fd | 210 | lcd.drawLine(22,12,26,12,1); |
ml16c5l | 11:ba1906f151fd | 211 | lcd.drawLine(31,12,31,12,1); |
ml16c5l | 11:ba1906f151fd | 212 | lcd.drawLine(37,12,37,12,1); |
ml16c5l | 11:ba1906f151fd | 213 | lcd.drawLine(43,12,45,12,1); |
ml16c5l | 11:ba1906f151fd | 214 | lcd.drawLine(47,12,48,12,1); |
ml16c5l | 11:ba1906f151fd | 215 | |
ml16c5l | 11:ba1906f151fd | 216 | lcd.drawLine(24,13,25,13,1); |
ml16c5l | 11:ba1906f151fd | 217 | lcd.drawLine(31,13,31,13,1); |
ml16c5l | 11:ba1906f151fd | 218 | lcd.drawLine(37,13,38,13,1); |
ml16c5l | 11:ba1906f151fd | 219 | lcd.drawLine(47,13,47,13,1); |
ml16c5l | 11:ba1906f151fd | 220 | |
ml16c5l | 11:ba1906f151fd | 221 | lcd.drawLine(31,14,31,14,1); |
ml16c5l | 11:ba1906f151fd | 222 | lcd.drawLine(38,14,39,14,1); |
ml16c5l | 11:ba1906f151fd | 223 | |
ml16c5l | 11:ba1906f151fd | 224 | lcd.drawLine(31,15,31,15,1); |
ml16c5l | 11:ba1906f151fd | 225 | lcd.drawLine(30,16,31,16,1); |
ml16c5l | 11:ba1906f151fd | 226 | lcd.drawLine(29,17,30,17,1); |
ml16c5l | 11:ba1906f151fd | 227 | lcd.drawLine(29,18,29,18,1); |
ml16c5l | 11:ba1906f151fd | 228 | |
ml16c5l | 11:ba1906f151fd | 229 | lcd.printString("Press START ",8,3); |
ml16c5l | 4:2848b366ee3d | 230 | lcd.printString("to Start ",20,5); |
ml16c5l | 11:ba1906f151fd | 231 | |
ml16c5l | 11:ba1906f151fd | 232 | |
ml16c5l | 11:ba1906f151fd | 233 | lcd.refresh(); |
ml16c5l | 3:5d860d0d589e | 234 | pad.leds_on(); |
ml16c5l | 4:2848b366ee3d | 235 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 236 | pad.tone(50,0.1); |
ml16c5l | 11:ba1906f151fd | 237 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 238 | pad.tone(100,0.01); |
ml16c5l | 11:ba1906f151fd | 239 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 240 | pad.tone(500,0.1); |
ml16c5l | 11:ba1906f151fd | 241 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 242 | pad.tone(700,0.01); |
ml16c5l | 4:2848b366ee3d | 243 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 244 | pad.tone(500,0.1); |
ml16c5l | 11:ba1906f151fd | 245 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 246 | pad.tone(100,0.01); |
ml16c5l | 11:ba1906f151fd | 247 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 248 | pad.tone(50,0.1); |
ml16c5l | 11:ba1906f151fd | 249 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 250 | pad.tone(100,0.01); |
ml16c5l | 4:2848b366ee3d | 251 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 252 | pad.tone(500,0.1); |
ml16c5l | 4:2848b366ee3d | 253 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 254 | pad.tone(700,0.1); |
ml16c5l | 4:2848b366ee3d | 255 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 256 | pad.tone(500,0.1); |
ml16c5l | 4:2848b366ee3d | 257 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 258 | pad.tone(100,0.1); |
ml16c5l | 4:2848b366ee3d | 259 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 260 | pad.tone(50,0.1); |
ml16c5l | 11:ba1906f151fd | 261 | } |
ml16c5l | 11:ba1906f151fd | 262 | |
ml16c5l | 11:ba1906f151fd | 263 | |
ml16c5l | 11:ba1906f151fd | 264 | } |
ml16c5l | 11:ba1906f151fd | 265 | |
ml16c5l | 11:ba1906f151fd | 266 | void menu() { |
ml16c5l | 11:ba1906f151fd | 267 | pad.leds_on(); |
ml16c5l | 11:ba1906f151fd | 268 | lcd.printString("_LEVEL1 A_ ",8,3); |
ml16c5l | 11:ba1906f151fd | 269 | lcd.printString("_LEVEL2 B_ ",8,5); |
ml16c5l | 11:ba1906f151fd | 270 | lcd.refresh(); |
ml16c5l | 11:ba1906f151fd | 271 | while ( pad.check_event(Gamepad::A_PRESSED) == false) { |
ml16c5l | 11:ba1906f151fd | 272 | pad.leds_on(); |
ml16c5l | 4:2848b366ee3d | 273 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 274 | pad.tone(50,0.1); |
ml16c5l | 11:ba1906f151fd | 275 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 276 | pad.tone(100,0.01); |
ml16c5l | 11:ba1906f151fd | 277 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 278 | pad.tone(500,0.1); |
ml16c5l | 11:ba1906f151fd | 279 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 280 | pad.tone(700,0.01); |
ml16c5l | 11:ba1906f151fd | 281 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 282 | pad.tone(500,0.1); |
ml16c5l | 11:ba1906f151fd | 283 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 284 | pad.tone(100,0.01); |
ml16c5l | 11:ba1906f151fd | 285 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 286 | pad.tone(50,0.1); |
ml16c5l | 11:ba1906f151fd | 287 | wait(0.2); |
ml16c5l | 11:ba1906f151fd | 288 | pad.tone(100,0.01); |
ml16c5l | 4:2848b366ee3d | 289 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 290 | pad.tone(500,0.1); |
ml16c5l | 4:2848b366ee3d | 291 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 292 | pad.tone(700,0.1); |
ml16c5l | 4:2848b366ee3d | 293 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 294 | pad.tone(500,0.1); |
ml16c5l | 4:2848b366ee3d | 295 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 296 | pad.tone(100,0.1); |
ml16c5l | 4:2848b366ee3d | 297 | wait(0.2); |
ml16c5l | 4:2848b366ee3d | 298 | pad.tone(50,0.1); |
ml16c5l | 3:5d860d0d589e | 299 | } |
ml16c5l | 11:ba1906f151fd | 300 | lcd.refresh(); |
ml16c5l | 11:ba1906f151fd | 301 | |
ml16c5l | 11:ba1906f151fd | 302 | } |
ml16c5l | 11:ba1906f151fd | 303 | |
ml16c5l | 11:ba1906f151fd | 304 |