Kern Fowler / Mbed 2 deprecated Donkey_Kong_Game

Dependencies:   mbed

Committer:
Kern_EL17KJTF
Date:
Tue May 07 15:33:17 2019 +0000
Revision:
7:ffbc921c20f7
Parent:
6:478f81e79d9b
Child:
8:421f94b816c4
Game Engine Class Created.; Donkey Class Created.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kern_EL17KJTF 0:0130fd5738f7 1 /*
Kern_EL17KJTF 0:0130fd5738f7 2 ELEC2645 Embedded Systems Project
Kern_EL17KJTF 0:0130fd5738f7 3 School of Electronic & Electrical Engineering
Kern_EL17KJTF 0:0130fd5738f7 4 University of Leeds
Kern_EL17KJTF 0:0130fd5738f7 5
Kern_EL17KJTF 0:0130fd5738f7 6 Name: Kern Fowler
Kern_EL17KJTF 0:0130fd5738f7 7 Username: el17kjtf
Kern_EL17KJTF 0:0130fd5738f7 8 Student ID Number: 201116686
Kern_EL17KJTF 0:0130fd5738f7 9 Date: 19/02/2019
Kern_EL17KJTF 2:6baf849b0270 10 Version: 1.2
Kern_EL17KJTF 1:7a0917df015a 11
Kern_EL17KJTF 1:7a0917df015a 12 */
Kern_EL17KJTF 1:7a0917df015a 13 #include "main.h"
Kern_EL17KJTF 1:7a0917df015a 14
Kern_EL17KJTF 1:7a0917df015a 15
Kern_EL17KJTF 6:478f81e79d9b 16 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Kern_EL17KJTF 6:478f81e79d9b 17 Gamepad pad;
Kern_EL17KJTF 6:478f81e79d9b 18 Options opt;
Kern_EL17KJTF 7:ffbc921c20f7 19 Donkey dky;
Kern_EL17KJTF 7:ffbc921c20f7 20 GameEngine eng;
Kern_EL17KJTF 6:478f81e79d9b 21
Kern_EL17KJTF 2:6baf849b0270 22 int fps = 24;
Kern_EL17KJTF 2:6baf849b0270 23 int direction;
Kern_EL17KJTF 3:b248dc1f3e8d 24 int menu_option_pos = 0;
Kern_EL17KJTF 2:6baf849b0270 25 int arrow_pos = 0;
Kern_EL17KJTF 2:6baf849b0270 26
Kern_EL17KJTF 6:478f81e79d9b 27 // Game State--------------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 28
Kern_EL17KJTF 7:ffbc921c20f7 29 GameEngine::GameEngine()
Kern_EL17KJTF 7:ffbc921c20f7 30 {
Kern_EL17KJTF 7:ffbc921c20f7 31
Kern_EL17KJTF 7:ffbc921c20f7 32 }
Kern_EL17KJTF 7:ffbc921c20f7 33
Kern_EL17KJTF 7:ffbc921c20f7 34 GameEngine::~GameEngine()
Kern_EL17KJTF 7:ffbc921c20f7 35 {
Kern_EL17KJTF 7:ffbc921c20f7 36
Kern_EL17KJTF 7:ffbc921c20f7 37 }
Kern_EL17KJTF 7:ffbc921c20f7 38
Kern_EL17KJTF 7:ffbc921c20f7 39 void GameEngine::gameengine_run(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 40 wait_ms(250);
Kern_EL17KJTF 6:478f81e79d9b 41
Kern_EL17KJTF 6:478f81e79d9b 42 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 43 //printf("Game State");
Kern_EL17KJTF 6:478f81e79d9b 44 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 45 lcd.printString("Game",0,0);
Kern_EL17KJTF 7:ffbc921c20f7 46 dky.donkeykong_movement(pad, lcd);
Kern_EL17KJTF 6:478f81e79d9b 47 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 48 }
Kern_EL17KJTF 6:478f81e79d9b 49 }
Kern_EL17KJTF 6:478f81e79d9b 50
Kern_EL17KJTF 6:478f81e79d9b 51
Kern_EL17KJTF 6:478f81e79d9b 52 // Donkey -----------
Kern_EL17KJTF 6:478f81e79d9b 53 int donkeykong_x = 0;
Kern_EL17KJTF 6:478f81e79d9b 54 int donkeykong_y = 32;
Kern_EL17KJTF 6:478f81e79d9b 55 int donkey_kong_speed = 25;
Kern_EL17KJTF 7:ffbc921c20f7 56
Kern_EL17KJTF 7:ffbc921c20f7 57 Donkey::Donkey()
Kern_EL17KJTF 7:ffbc921c20f7 58 {
Kern_EL17KJTF 7:ffbc921c20f7 59
Kern_EL17KJTF 7:ffbc921c20f7 60 }
Kern_EL17KJTF 7:ffbc921c20f7 61 Donkey::~Donkey()
Kern_EL17KJTF 7:ffbc921c20f7 62 {
Kern_EL17KJTF 7:ffbc921c20f7 63
Kern_EL17KJTF 7:ffbc921c20f7 64 }
Kern_EL17KJTF 7:ffbc921c20f7 65
Kern_EL17KJTF 7:ffbc921c20f7 66 void Donkey::donkeykong_movement(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 67 direction = pad.get_direction();
Kern_EL17KJTF 6:478f81e79d9b 68 if (direction == NE || direction == E || direction == SE) {
Kern_EL17KJTF 6:478f81e79d9b 69 donkeykong_x = donkeykong_x + 1;
Kern_EL17KJTF 6:478f81e79d9b 70 lcd.drawSprite(donkeykong_x,donkeykong_y,16,16,(int *)game_dk_walking_right_1);
Kern_EL17KJTF 6:478f81e79d9b 71 wait_ms(donkey_kong_speed);
Kern_EL17KJTF 6:478f81e79d9b 72 }
Kern_EL17KJTF 6:478f81e79d9b 73 else if (direction == NW || direction == W || direction == SW) {
Kern_EL17KJTF 6:478f81e79d9b 74 donkeykong_x = donkeykong_x - 1;
Kern_EL17KJTF 6:478f81e79d9b 75 lcd.drawSprite(donkeykong_x,donkeykong_y,16,16,(int *)game_dk_walking_left_1);
Kern_EL17KJTF 6:478f81e79d9b 76 wait_ms(donkey_kong_speed);
Kern_EL17KJTF 6:478f81e79d9b 77 }
Kern_EL17KJTF 6:478f81e79d9b 78 else {
Kern_EL17KJTF 6:478f81e79d9b 79 lcd.drawSprite(donkeykong_x,donkeykong_y,16,16,(int *)game_dk_stationary);
Kern_EL17KJTF 6:478f81e79d9b 80 }
Kern_EL17KJTF 7:ffbc921c20f7 81 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 82 if (donkeykong_x > 68) {
Kern_EL17KJTF 6:478f81e79d9b 83 donkeykong_x = 68;
Kern_EL17KJTF 6:478f81e79d9b 84 }
Kern_EL17KJTF 6:478f81e79d9b 85 if (donkeykong_x < 0) {
Kern_EL17KJTF 6:478f81e79d9b 86 donkeykong_x = 0;
Kern_EL17KJTF 6:478f81e79d9b 87 }
Kern_EL17KJTF 6:478f81e79d9b 88 }
Kern_EL17KJTF 6:478f81e79d9b 89 // Barrel -----------
Kern_EL17KJTF 6:478f81e79d9b 90
Kern_EL17KJTF 6:478f81e79d9b 91 // Banana -----------
Kern_EL17KJTF 6:478f81e79d9b 92
Kern_EL17KJTF 6:478f81e79d9b 93 // Controls State----------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 94 void controls_run() {
Kern_EL17KJTF 6:478f81e79d9b 95 wait_ms(250);
Kern_EL17KJTF 6:478f81e79d9b 96
Kern_EL17KJTF 6:478f81e79d9b 97 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 98 //printf("Control State");
Kern_EL17KJTF 6:478f81e79d9b 99 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 100 lcd.printString("Controls",19,0);
Kern_EL17KJTF 6:478f81e79d9b 101 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 102 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 103 }
Kern_EL17KJTF 6:478f81e79d9b 104 }
Kern_EL17KJTF 6:478f81e79d9b 105
Kern_EL17KJTF 6:478f81e79d9b 106 // Instructions State------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 107 void instructions_run() {
Kern_EL17KJTF 6:478f81e79d9b 108 wait_ms(250);
Kern_EL17KJTF 6:478f81e79d9b 109
Kern_EL17KJTF 6:478f81e79d9b 110 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 111 //printf("Instructions State");
Kern_EL17KJTF 6:478f81e79d9b 112 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 113 lcd.printString("Instructions",7,0);
Kern_EL17KJTF 6:478f81e79d9b 114 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 115 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 116 }
Kern_EL17KJTF 6:478f81e79d9b 117 }
Kern_EL17KJTF 6:478f81e79d9b 118
Kern_EL17KJTF 6:478f81e79d9b 119 // Options State-----------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 120 float opt_brightness = 0.5;
Kern_EL17KJTF 6:478f81e79d9b 121 float opt_contrast = 0.396;
Kern_EL17KJTF 6:478f81e79d9b 122 int opt_volume = 1;
Kern_EL17KJTF 6:478f81e79d9b 123
Kern_EL17KJTF 6:478f81e79d9b 124 Options::Options()
Kern_EL17KJTF 6:478f81e79d9b 125 {
Kern_EL17KJTF 6:478f81e79d9b 126
Kern_EL17KJTF 6:478f81e79d9b 127 }
Kern_EL17KJTF 6:478f81e79d9b 128
Kern_EL17KJTF 6:478f81e79d9b 129 Options::~Options()
Kern_EL17KJTF 6:478f81e79d9b 130 {
Kern_EL17KJTF 6:478f81e79d9b 131
Kern_EL17KJTF 6:478f81e79d9b 132 }
Kern_EL17KJTF 6:478f81e79d9b 133
Kern_EL17KJTF 6:478f81e79d9b 134 void Options::options_run(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 135 wait_ms(250);
Kern_EL17KJTF 6:478f81e79d9b 136 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 137 //printf("Options State");
Kern_EL17KJTF 6:478f81e79d9b 138 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 139 lcd.printString("Options",21,0);
Kern_EL17KJTF 6:478f81e79d9b 140 options_brightness(pad, lcd);
Kern_EL17KJTF 6:478f81e79d9b 141 options_contrast(pad, lcd);
Kern_EL17KJTF 6:478f81e79d9b 142 options_volume(pad, lcd);
Kern_EL17KJTF 6:478f81e79d9b 143 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 144 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 145 }
Kern_EL17KJTF 6:478f81e79d9b 146 }
Kern_EL17KJTF 6:478f81e79d9b 147
Kern_EL17KJTF 6:478f81e79d9b 148 void Options::options_brightness(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 149 if (pad.check_event(Gamepad::B_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 150 opt_brightness = 0;
Kern_EL17KJTF 6:478f81e79d9b 151 }
Kern_EL17KJTF 6:478f81e79d9b 152 if (pad.check_event(Gamepad::A_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 153 opt_brightness = 0.5;
Kern_EL17KJTF 6:478f81e79d9b 154 }
Kern_EL17KJTF 6:478f81e79d9b 155 lcd.setBrightness(opt_brightness);
Kern_EL17KJTF 6:478f81e79d9b 156 lcd.printString("A/B = BackLite",0,2);
Kern_EL17KJTF 6:478f81e79d9b 157 }
Kern_EL17KJTF 6:478f81e79d9b 158
Kern_EL17KJTF 6:478f81e79d9b 159 void Options::options_contrast(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 160 opt_contrast = pad.read_pot();
Kern_EL17KJTF 6:478f81e79d9b 161 lcd.setContrast(opt_contrast);
Kern_EL17KJTF 6:478f81e79d9b 162 lcd.printString("Pot = Contrast",0,3);
Kern_EL17KJTF 6:478f81e79d9b 163 printf("Contrast = %f", opt_contrast);
Kern_EL17KJTF 6:478f81e79d9b 164 }
Kern_EL17KJTF 6:478f81e79d9b 165
Kern_EL17KJTF 6:478f81e79d9b 166 void Options::options_volume(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 167 if (pad.check_event(Gamepad::Y_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 168 opt_volume = 0;
Kern_EL17KJTF 6:478f81e79d9b 169 }
Kern_EL17KJTF 6:478f81e79d9b 170 if (pad.check_event(Gamepad::X_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 171 opt_volume = 1;
Kern_EL17KJTF 6:478f81e79d9b 172 pad.tone(2400, 0.2);
Kern_EL17KJTF 6:478f81e79d9b 173 wait_ms(200);
Kern_EL17KJTF 6:478f81e79d9b 174 pad.tone(2400, 0.2);
Kern_EL17KJTF 6:478f81e79d9b 175 wait_ms(200);
Kern_EL17KJTF 6:478f81e79d9b 176 pad.tone(2400, 0.2);
Kern_EL17KJTF 6:478f81e79d9b 177 }
Kern_EL17KJTF 6:478f81e79d9b 178 lcd.printString("X/Y = Volume",0,4);
Kern_EL17KJTF 6:478f81e79d9b 179 if (opt_volume == 0) {
Kern_EL17KJTF 6:478f81e79d9b 180 lcd.printString("Off",36,5);
Kern_EL17KJTF 6:478f81e79d9b 181 } else {
Kern_EL17KJTF 6:478f81e79d9b 182 lcd.printString("On",36,5);
Kern_EL17KJTF 6:478f81e79d9b 183 }
Kern_EL17KJTF 6:478f81e79d9b 184
Kern_EL17KJTF 6:478f81e79d9b 185 }
Kern_EL17KJTF 6:478f81e79d9b 186
Kern_EL17KJTF 6:478f81e79d9b 187 // High Score State--------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 188 void high_scores_run() {
Kern_EL17KJTF 6:478f81e79d9b 189 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 190 //printf("High Score State");
Kern_EL17KJTF 6:478f81e79d9b 191 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 192 lcd.printString("High Scores",12,0);
Kern_EL17KJTF 6:478f81e79d9b 193 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 194 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 195 }
Kern_EL17KJTF 6:478f81e79d9b 196 }
Kern_EL17KJTF 6:478f81e79d9b 197
Kern_EL17KJTF 6:478f81e79d9b 198 // Main Menu --------------------------------------------------------------
Kern_EL17KJTF 2:6baf849b0270 199 int main() {
Kern_EL17KJTF 1:7a0917df015a 200 init(); // initialise peripherals
Kern_EL17KJTF 1:7a0917df015a 201 welcome(); // display welcome message
Kern_EL17KJTF 1:7a0917df015a 202
Kern_EL17KJTF 1:7a0917df015a 203 while(1) { // infinite loop
Kern_EL17KJTF 2:6baf849b0270 204 arrow_location();
Kern_EL17KJTF 2:6baf849b0270 205 print_menu(); // this re-prints the menu at the start of every loop
Kern_EL17KJTF 2:6baf849b0270 206 arrow_select();
Kern_EL17KJTF 2:6baf849b0270 207 wait_ms(1.0f/fps);
Kern_EL17KJTF 1:7a0917df015a 208 }
Kern_EL17KJTF 1:7a0917df015a 209 }
Kern_EL17KJTF 1:7a0917df015a 210
Kern_EL17KJTF 2:6baf849b0270 211 void init() {
Kern_EL17KJTF 1:7a0917df015a 212 // initialise LCD
Kern_EL17KJTF 1:7a0917df015a 213 lcd.init();
Kern_EL17KJTF 1:7a0917df015a 214 // initialise Gamepad
Kern_EL17KJTF 1:7a0917df015a 215 pad.init();
Kern_EL17KJTF 2:6baf849b0270 216 wait(2.5);
Kern_EL17KJTF 2:6baf849b0270 217 }
Kern_EL17KJTF 2:6baf849b0270 218
Kern_EL17KJTF 2:6baf849b0270 219 void arrow_location() {
Kern_EL17KJTF 2:6baf849b0270 220 direction = pad.get_direction();
Kern_EL17KJTF 2:6baf849b0270 221 if (direction == N) {
Kern_EL17KJTF 3:b248dc1f3e8d 222 menu_option_pos = menu_option_pos - 1;
Kern_EL17KJTF 2:6baf849b0270 223 // printf("North Pressed");
Kern_EL17KJTF 2:6baf849b0270 224 wait_ms(250);
Kern_EL17KJTF 2:6baf849b0270 225 }
Kern_EL17KJTF 2:6baf849b0270 226 if (direction == S) {
Kern_EL17KJTF 3:b248dc1f3e8d 227 menu_option_pos = menu_option_pos + 1;
Kern_EL17KJTF 2:6baf849b0270 228 // printf("South Pressed");
Kern_EL17KJTF 2:6baf849b0270 229 wait_ms(250);
Kern_EL17KJTF 2:6baf849b0270 230 }
Kern_EL17KJTF 4:59175720d8ee 231 if (menu_option_pos > 4) {
Kern_EL17KJTF 3:b248dc1f3e8d 232 menu_option_pos = 0;
Kern_EL17KJTF 2:6baf849b0270 233 }
Kern_EL17KJTF 3:b248dc1f3e8d 234 if (menu_option_pos < 0) {
Kern_EL17KJTF 4:59175720d8ee 235 menu_option_pos = 4;
Kern_EL17KJTF 2:6baf849b0270 236 }
Kern_EL17KJTF 4:59175720d8ee 237 arrow_pos = 8 + (menu_option_pos * 8);
Kern_EL17KJTF 3:b248dc1f3e8d 238 // printf("Option Num = %d", menu_option_pos)
Kern_EL17KJTF 2:6baf849b0270 239 }
Kern_EL17KJTF 2:6baf849b0270 240
Kern_EL17KJTF 2:6baf849b0270 241 void arrow_select() {
Kern_EL17KJTF 2:6baf849b0270 242 if (pad.check_event(Gamepad::A_PRESSED) == true) {
Kern_EL17KJTF 3:b248dc1f3e8d 243 if (menu_option_pos == 0) {
Kern_EL17KJTF 2:6baf849b0270 244 // printf("GameEngine");
Kern_EL17KJTF 7:ffbc921c20f7 245 eng.gameengine_run(pad, lcd);
Kern_EL17KJTF 2:6baf849b0270 246 }
Kern_EL17KJTF 3:b248dc1f3e8d 247 if (menu_option_pos == 1) {
Kern_EL17KJTF 2:6baf849b0270 248 // printf("Controls");
Kern_EL17KJTF 2:6baf849b0270 249 controls_run();
Kern_EL17KJTF 2:6baf849b0270 250 }
Kern_EL17KJTF 3:b248dc1f3e8d 251 if (menu_option_pos == 2) {
Kern_EL17KJTF 2:6baf849b0270 252 // printf("Instructions");
Kern_EL17KJTF 2:6baf849b0270 253 instructions_run();
Kern_EL17KJTF 2:6baf849b0270 254 }
Kern_EL17KJTF 3:b248dc1f3e8d 255 if (menu_option_pos == 3) {
Kern_EL17KJTF 2:6baf849b0270 256 // printf("Options");
Kern_EL17KJTF 6:478f81e79d9b 257 opt.options_run(pad, lcd);
Kern_EL17KJTF 2:6baf849b0270 258 }
Kern_EL17KJTF 4:59175720d8ee 259 if (menu_option_pos == 4) {
Kern_EL17KJTF 4:59175720d8ee 260 // printf("High Scores");
Kern_EL17KJTF 4:59175720d8ee 261 high_scores_run();
Kern_EL17KJTF 4:59175720d8ee 262 }
Kern_EL17KJTF 2:6baf849b0270 263 }
Kern_EL17KJTF 2:6baf849b0270 264 }
Kern_EL17KJTF 1:7a0917df015a 265
Kern_EL17KJTF 1:7a0917df015a 266
Kern_EL17KJTF 2:6baf849b0270 267 void print_menu() {
Kern_EL17KJTF 2:6baf849b0270 268 lcd.clear();
Kern_EL17KJTF 3:b248dc1f3e8d 269 lcd.printString("Main Menu",19,0);
Kern_EL17KJTF 4:59175720d8ee 270 lcd.printString("Start Game",8,1);
Kern_EL17KJTF 4:59175720d8ee 271 lcd.printString("Controls",8,2);
Kern_EL17KJTF 4:59175720d8ee 272 lcd.printString("Instructions",8,3);
Kern_EL17KJTF 4:59175720d8ee 273 lcd.printString("Options",8,4);
Kern_EL17KJTF 4:59175720d8ee 274 lcd.printString("High Scores",8,5);
Kern_EL17KJTF 2:6baf849b0270 275 lcd.drawSprite(0,arrow_pos,7,7,(int *)menu_arrow);
Kern_EL17KJTF 2:6baf849b0270 276 lcd.refresh();
Kern_EL17KJTF 1:7a0917df015a 277 }
Kern_EL17KJTF 1:7a0917df015a 278
Kern_EL17KJTF 2:6baf849b0270 279 void welcome() {
Kern_EL17KJTF 1:7a0917df015a 280 lcd.clear();
Kern_EL17KJTF 2:6baf849b0270 281 lcd.drawSprite(24,0,36,34,(int *)menu_dk_face);
Kern_EL17KJTF 1:7a0917df015a 282 lcd.printString(" Donkey Kong",0,5);
Kern_EL17KJTF 1:7a0917df015a 283 lcd.refresh();
Kern_EL17KJTF 2:6baf849b0270 284 wait(1.0); //edit back to longer
Kern_EL17KJTF 1:7a0917df015a 285 lcd.clear();
Kern_EL17KJTF 2:6baf849b0270 286 lcd.printString(" Created",0,0);
Kern_EL17KJTF 2:6baf849b0270 287 lcd.printString(" By",0,1);
Kern_EL17KJTF 2:6baf849b0270 288 lcd.printString(" Kern Fowler",0,3);
Kern_EL17KJTF 2:6baf849b0270 289 lcd.printString(" 201116686",0,4);
Kern_EL17KJTF 1:7a0917df015a 290 lcd.refresh();
Kern_EL17KJTF 2:6baf849b0270 291 wait(1.0);
Kern_EL17KJTF 1:7a0917df015a 292 }