ELEC2645 Embedded Systems Project (JOYSTICK)

Dependencies:   N5110 SDFileSystem mbed

Committer:
wuchyi
Date:
Thu May 05 15:03:15 2016 +0000
Revision:
1:06958b7bbf65
Parent:
0:1719e11ef162
Child:
2:537b8388dc6a
working logic

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wuchyi 0:1719e11ef162 1 /*
wuchyi 0:1719e11ef162 2 Progress update:
wuchyi 0:1719e11ef162 3 Easter -- Added ticker for joystick update
wuchyi 0:1719e11ef162 4 joystick initial position checker
wuchyi 0:1719e11ef162 5
wuchyi 0:1719e11ef162 6 week 22 -- main logic behind snake game added
wuchyi 0:1719e11ef162 7 to do : wraparound (optional in main menu)
wuchyi 0:1719e11ef162 8 menu system - play game, settings(joy calibration, wraparound on//off) ; game over screen
wuchyi 0:1719e11ef162 9 */
wuchyi 0:1719e11ef162 10
wuchyi 0:1719e11ef162 11
wuchyi 0:1719e11ef162 12 #include "mbed.h"
wuchyi 0:1719e11ef162 13 #include "N5110.h"
wuchyi 0:1719e11ef162 14 #include "SDFileSystem.h"
wuchyi 1:06958b7bbf65 15 #define JOYSTICK_TOLERANCE 0.1 //direction tolerance of joystick
wuchyi 0:1719e11ef162 16
wuchyi 0:1719e11ef162 17 // VCC, SCE, RST, D/C, MOSI, SCLK, LED
wuchyi 0:1719e11ef162 18 N5110 lcd (PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3);
wuchyi 1:06958b7bbf65 19 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd");
wuchyi 0:1719e11ef162 20
wuchyi 0:1719e11ef162 21 void init_display();
wuchyi 0:1719e11ef162 22 void draw_screen();
wuchyi 0:1719e11ef162 23 void calibrate_joystick();
wuchyi 0:1719e11ef162 24 void joystick_pos();
wuchyi 0:1719e11ef162 25 void game_timer_isr();
wuchyi 0:1719e11ef162 26 void food_pos();
wuchyi 0:1719e11ef162 27 void snake_move();
wuchyi 1:06958b7bbf65 28 void snake_logic_1();
wuchyi 0:1719e11ef162 29 float refresh_rate = 10; //refresh screen in Hz
wuchyi 0:1719e11ef162 30 volatile int g_timer_flag = 0;
wuchyi 0:1719e11ef162 31 bool gameOver; //if game has ended
wuchyi 0:1719e11ef162 32 int pdirection;
wuchyi 0:1719e11ef162 33 int gamemode;
wuchyi 0:1719e11ef162 34
wuchyi 1:06958b7bbf65 35 const int width = (84 - 2) / 2 ; // screen width (playable area due to 2x size of snake)
wuchyi 1:06958b7bbf65 36 const int height = (48 - 4) / 2 ; // screen height
wuchyi 0:1719e11ef162 37
wuchyi 0:1719e11ef162 38 Ticker gameTimer;
wuchyi 0:1719e11ef162 39 Ticker gameTimer1;
wuchyi 1:06958b7bbf65 40 Ticker gameTimer2;
wuchyi 0:1719e11ef162 41 Ticker joystickTimer; // ticker timer for joystick poisition update
wuchyi 0:1719e11ef162 42 int fx,fy,Button,score; // global variables to hold data (control)
wuchyi 0:1719e11ef162 43 AnalogIn xAxis(A0);
wuchyi 0:1719e11ef162 44 AnalogIn yAxis(A1);
wuchyi 0:1719e11ef162 45 AnalogIn pot(A2);
wuchyi 1:06958b7bbf65 46 DigitalOut red_led(LED_RED);
wuchyi 0:1719e11ef162 47
wuchyi 0:1719e11ef162 48
wuchyi 0:1719e11ef162 49
wuchyi 0:1719e11ef162 50 enum DirectionName { //joystick directions
wuchyi 0:1719e11ef162 51 CENTRE,
wuchyi 0:1719e11ef162 52 UP,
wuchyi 0:1719e11ef162 53 LEFT,
wuchyi 0:1719e11ef162 54 DOWN,
wuchyi 0:1719e11ef162 55 RIGHT,
wuchyi 0:1719e11ef162 56 UNKNOWN
wuchyi 0:1719e11ef162 57 };
wuchyi 0:1719e11ef162 58
wuchyi 0:1719e11ef162 59 ;
wuchyi 0:1719e11ef162 60 // struct for joystick
wuchyi 0:1719e11ef162 61 typedef struct joystick1 Joystick;
wuchyi 0:1719e11ef162 62 struct joystick1 {
wuchyi 0:1719e11ef162 63 float x; // current x value
wuchyi 0:1719e11ef162 64 float x0; // 'centred' x value
wuchyi 0:1719e11ef162 65 float y; // current y value
wuchyi 0:1719e11ef162 66 float y0; // 'centred' y value
wuchyi 0:1719e11ef162 67 int button; // button state (assume pull-down used, so 1 = pressed, 0 = unpressed)
wuchyi 0:1719e11ef162 68 DirectionName direction; // current direction
wuchyi 0:1719e11ef162 69 };
wuchyi 0:1719e11ef162 70
wuchyi 0:1719e11ef162 71 Joystick joystick;
wuchyi 0:1719e11ef162 72
wuchyi 0:1719e11ef162 73 typedef struct snake1 Snake;
wuchyi 0:1719e11ef162 74 struct snake1 {
wuchyi 0:1719e11ef162 75 int hx; // head x value
wuchyi 0:1719e11ef162 76 int hy; // head y value
wuchyi 0:1719e11ef162 77 int length; // snake length
wuchyi 0:1719e11ef162 78 int tailx[100],taily[100]; //tail coordinates array
wuchyi 0:1719e11ef162 79 };
wuchyi 0:1719e11ef162 80
wuchyi 0:1719e11ef162 81 Snake snake;
wuchyi 0:1719e11ef162 82
wuchyi 0:1719e11ef162 83
wuchyi 0:1719e11ef162 84
wuchyi 0:1719e11ef162 85 void init_display()
wuchyi 0:1719e11ef162 86 {
wuchyi 0:1719e11ef162 87 lcd.init();
wuchyi 0:1719e11ef162 88 lcd.normalMode(); // normal colour mode
wuchyi 0:1719e11ef162 89 lcd.setBrightness(0.5); // put LED backlight on 50%
wuchyi 0:1719e11ef162 90 lcd.clear(); // clear screen (init)
wuchyi 0:1719e11ef162 91 }
wuchyi 0:1719e11ef162 92
wuchyi 0:1719e11ef162 93 void adjust_brightness()
wuchyi 0:1719e11ef162 94 {
wuchyi 0:1719e11ef162 95 int x = pot;
wuchyi 0:1719e11ef162 96 lcd.setBrightness(x);
wuchyi 0:1719e11ef162 97 }
wuchyi 0:1719e11ef162 98
wuchyi 0:1719e11ef162 99
wuchyi 0:1719e11ef162 100 void draw_screen()
wuchyi 0:1719e11ef162 101 {
wuchyi 0:1719e11ef162 102 lcd.clear();
wuchyi 1:06958b7bbf65 103
wuchyi 1:06958b7bbf65 104 lcd.drawRect(0,1,83,45,0); // borders square
wuchyi 0:1719e11ef162 105
wuchyi 0:1719e11ef162 106 for (int q = 0; q < snake.length ; q++) { //print snake
wuchyi 1:06958b7bbf65 107 //lcd.setPixel (snake.tailx[q],snake.taily[q]);
wuchyi 1:06958b7bbf65 108 lcd.drawRect ((snake.tailx[q]*2),(snake.taily[q]*2),1,1,1);
wuchyi 1:06958b7bbf65 109 // red_led = 0;
wuchyi 1:06958b7bbf65 110
wuchyi 0:1719e11ef162 111 }
wuchyi 1:06958b7bbf65 112 //lcd.setPixel(snake.hx,snake.hy); //print snake head position
wuchyi 1:06958b7bbf65 113 lcd.drawRect ((fx * 2), (fy * 2), 1,1,1);
wuchyi 1:06958b7bbf65 114 //lcd.setPixel (fx,fy); //print food position
wuchyi 0:1719e11ef162 115 lcd.refresh(); // update display
wuchyi 0:1719e11ef162 116
wuchyi 0:1719e11ef162 117 }
wuchyi 0:1719e11ef162 118
wuchyi 0:1719e11ef162 119 void game_timer_isr()
wuchyi 0:1719e11ef162 120 {
wuchyi 0:1719e11ef162 121 g_timer_flag = 1;
wuchyi 0:1719e11ef162 122 }
wuchyi 0:1719e11ef162 123
wuchyi 0:1719e11ef162 124 void calibrate_joystick()
wuchyi 0:1719e11ef162 125 {
wuchyi 0:1719e11ef162 126 //get initial joystick position as offset
wuchyi 0:1719e11ef162 127 joystick.x0 = xAxis;
wuchyi 0:1719e11ef162 128 joystick.y0 = yAxis;
wuchyi 0:1719e11ef162 129
wuchyi 0:1719e11ef162 130 }
wuchyi 0:1719e11ef162 131
wuchyi 0:1719e11ef162 132 void joystick_pos()
wuchyi 0:1719e11ef162 133 {
wuchyi 0:1719e11ef162 134 joystick.x = xAxis - joystick.x0;
wuchyi 0:1719e11ef162 135 joystick.y = yAxis - joystick.y0;
wuchyi 0:1719e11ef162 136
wuchyi 0:1719e11ef162 137 if ( fabs(joystick.y) <= JOYSTICK_TOLERANCE && fabs(joystick.x) < JOYSTICK_TOLERANCE) {
wuchyi 0:1719e11ef162 138 joystick.direction = CENTRE;
wuchyi 0:1719e11ef162 139 } else if ( joystick.y > JOYSTICK_TOLERANCE && fabs(joystick.x) < JOYSTICK_TOLERANCE) {
wuchyi 0:1719e11ef162 140 joystick.direction = UP;
wuchyi 0:1719e11ef162 141 } else if ( joystick.y < JOYSTICK_TOLERANCE && fabs(joystick.x) < JOYSTICK_TOLERANCE) {
wuchyi 0:1719e11ef162 142 joystick.direction = DOWN;
wuchyi 0:1719e11ef162 143 } else if ( joystick.x > JOYSTICK_TOLERANCE && fabs(joystick.y) < JOYSTICK_TOLERANCE) {
wuchyi 0:1719e11ef162 144 joystick.direction = RIGHT;
wuchyi 0:1719e11ef162 145 } else if ( joystick.x < JOYSTICK_TOLERANCE && fabs(joystick.y) < JOYSTICK_TOLERANCE) {
wuchyi 0:1719e11ef162 146 joystick.direction = LEFT;
wuchyi 0:1719e11ef162 147 } else {
wuchyi 0:1719e11ef162 148 joystick.direction = UNKNOWN;
wuchyi 0:1719e11ef162 149 }
wuchyi 0:1719e11ef162 150
wuchyi 0:1719e11ef162 151 }
wuchyi 0:1719e11ef162 152
wuchyi 0:1719e11ef162 153
wuchyi 1:06958b7bbf65 154 void snake_move() //move the coordinate of the snake head, if CENTRE, checks for pdirection and repeats.
wuchyi 0:1719e11ef162 155 {
wuchyi 1:06958b7bbf65 156 // red_led = 0;
wuchyi 1:06958b7bbf65 157 if (pdirection == 0 && joystick.direction == RIGHT) { // disable going backwards
wuchyi 1:06958b7bbf65 158 snake.hx--;
wuchyi 1:06958b7bbf65 159 } else if (pdirection == 1 && joystick.direction == DOWN) {
wuchyi 1:06958b7bbf65 160 snake.hy++;
wuchyi 1:06958b7bbf65 161 } else if (pdirection == 2 && joystick.direction == LEFT) {
wuchyi 1:06958b7bbf65 162 snake.hx++;
wuchyi 1:06958b7bbf65 163 } else if (pdirection == 3 && joystick.direction == UP) {
wuchyi 1:06958b7bbf65 164 snake.hy--;
wuchyi 0:1719e11ef162 165 } else {
wuchyi 1:06958b7bbf65 166
wuchyi 1:06958b7bbf65 167 if (joystick.direction == CENTRE) {
wuchyi 1:06958b7bbf65 168 if (pdirection == 0) {
wuchyi 1:06958b7bbf65 169 snake.hx-- ;
wuchyi 1:06958b7bbf65 170 } else if (pdirection == 1) {
wuchyi 1:06958b7bbf65 171 snake.hy++ ;
wuchyi 1:06958b7bbf65 172 } else if (pdirection == 2) {
wuchyi 1:06958b7bbf65 173 snake.hx++ ;
wuchyi 1:06958b7bbf65 174 } else if (pdirection == 3) {
wuchyi 1:06958b7bbf65 175 snake.hy-- ;
wuchyi 1:06958b7bbf65 176 } else {
wuchyi 1:06958b7bbf65 177 }
wuchyi 0:1719e11ef162 178 } else {
wuchyi 1:06958b7bbf65 179 if (joystick.direction == LEFT) {
wuchyi 1:06958b7bbf65 180 snake.hx-- ;
wuchyi 1:06958b7bbf65 181 pdirection = 0;
wuchyi 1:06958b7bbf65 182 } else if (joystick.direction == UP) {
wuchyi 1:06958b7bbf65 183 snake.hy++ ;
wuchyi 1:06958b7bbf65 184 pdirection = 1;
wuchyi 1:06958b7bbf65 185 } else if (joystick.direction == RIGHT) {
wuchyi 1:06958b7bbf65 186 snake.hx++ ;
wuchyi 1:06958b7bbf65 187 pdirection = 2;
wuchyi 1:06958b7bbf65 188 } else if (joystick.direction == DOWN) {
wuchyi 1:06958b7bbf65 189 snake.hy-- ;
wuchyi 1:06958b7bbf65 190 pdirection = 3;
wuchyi 1:06958b7bbf65 191 } else {
wuchyi 1:06958b7bbf65 192 }
wuchyi 1:06958b7bbf65 193
wuchyi 0:1719e11ef162 194 }
wuchyi 0:1719e11ef162 195 }
wuchyi 0:1719e11ef162 196 }
wuchyi 0:1719e11ef162 197
wuchyi 0:1719e11ef162 198 void game()
wuchyi 0:1719e11ef162 199 {
wuchyi 0:1719e11ef162 200 //brightnessTimer.attach(adjust_brightness,0.1);
wuchyi 1:06958b7bbf65 201 joystickTimer.detach();
wuchyi 1:06958b7bbf65 202 gameTimer.detach();
wuchyi 1:06958b7bbf65 203 gameTimer1.detach();
wuchyi 1:06958b7bbf65 204 gameTimer2.detach();
wuchyi 1:06958b7bbf65 205 joystick.direction = CENTRE;
wuchyi 1:06958b7bbf65 206 // gamemode = 0;
wuchyi 0:1719e11ef162 207 gameOver = false;
wuchyi 0:1719e11ef162 208 snake.hx = width / 2; // initial position of snake head
wuchyi 0:1719e11ef162 209 snake.hy = height / 2;
wuchyi 0:1719e11ef162 210 food_pos();
wuchyi 0:1719e11ef162 211 score = 0;
wuchyi 0:1719e11ef162 212 pdirection = 1;
wuchyi 0:1719e11ef162 213 snake.length = 4; //length including head and tail
wuchyi 1:06958b7bbf65 214 for (int w = 0 ; w < snake.length ; w++) { //set initial snake position
wuchyi 0:1719e11ef162 215 snake.tailx[w] = (snake.hx - w) ;
wuchyi 0:1719e11ef162 216 snake.taily[w] = snake.hy;
wuchyi 1:06958b7bbf65 217
wuchyi 0:1719e11ef162 218 }
wuchyi 0:1719e11ef162 219 //draw_screen();
wuchyi 0:1719e11ef162 220
wuchyi 1:06958b7bbf65 221
wuchyi 0:1719e11ef162 222
wuchyi 0:1719e11ef162 223
wuchyi 0:1719e11ef162 224 if (gamemode == 0) {
wuchyi 0:1719e11ef162 225 while (!gameOver) {
wuchyi 1:06958b7bbf65 226 joystickTimer.attach(&joystick_pos, 0.1);
wuchyi 1:06958b7bbf65 227 // gameTimer.attach(&snake_move,0.2);
wuchyi 1:06958b7bbf65 228 gameTimer1.attach(&snake_logic_1,0.1);
wuchyi 1:06958b7bbf65 229 gameTimer2.attach(&draw_screen, 0.1);
wuchyi 1:06958b7bbf65 230 sleep();
wuchyi 1:06958b7bbf65 231 }
wuchyi 1:06958b7bbf65 232 if (gameOver == true) {
wuchyi 1:06958b7bbf65 233 gameTimer1.detach();
wuchyi 1:06958b7bbf65 234 gameTimer2.detach();
wuchyi 1:06958b7bbf65 235 }
wuchyi 1:06958b7bbf65 236 }
wuchyi 1:06958b7bbf65 237 }
wuchyi 1:06958b7bbf65 238
wuchyi 1:06958b7bbf65 239 void snake_logic_1() {
wuchyi 1:06958b7bbf65 240 //red_led = 0;
wuchyi 1:06958b7bbf65 241 snake_move();
wuchyi 1:06958b7bbf65 242 for (int d = (snake.length) ; d > 0 ; d--) { //move all snake body one position back
wuchyi 1:06958b7bbf65 243 snake.tailx[d] = snake.tailx[d - 1];
wuchyi 1:06958b7bbf65 244 snake.taily[d] = snake.taily[d - 1];
wuchyi 1:06958b7bbf65 245
wuchyi 1:06958b7bbf65 246 }
wuchyi 1:06958b7bbf65 247 snake.tailx[0] = snake.hx;
wuchyi 1:06958b7bbf65 248 snake.taily[0] = snake.hy;
wuchyi 1:06958b7bbf65 249 // snake.hx = snake.tailx[0];
wuchyi 1:06958b7bbf65 250 // snake.hy = snake.taily[0];
wuchyi 0:1719e11ef162 251
wuchyi 1:06958b7bbf65 252 // snake_move();
wuchyi 1:06958b7bbf65 253 // draw_screen();
wuchyi 1:06958b7bbf65 254
wuchyi 1:06958b7bbf65 255 for (int p = 1; p < snake.length + 1; p++) { //snake dies when come in contact with tail
wuchyi 1:06958b7bbf65 256 if (snake.tailx[0] == snake.tailx[p] && snake.taily[0] == snake.taily[p]) {
wuchyi 1:06958b7bbf65 257 gameOver = true;
wuchyi 1:06958b7bbf65 258 red_led = 0;
wuchyi 1:06958b7bbf65 259 }
wuchyi 1:06958b7bbf65 260
wuchyi 1:06958b7bbf65 261
wuchyi 1:06958b7bbf65 262
wuchyi 1:06958b7bbf65 263 }
wuchyi 0:1719e11ef162 264
wuchyi 1:06958b7bbf65 265 if (snake.tailx[0] == 0 || snake.tailx[0] == width || snake.taily[0] == 1 || snake.taily[0] == height-1) {
wuchyi 1:06958b7bbf65 266 gameOver = true;
wuchyi 1:06958b7bbf65 267 }
wuchyi 1:06958b7bbf65 268
wuchyi 1:06958b7bbf65 269
wuchyi 1:06958b7bbf65 270 if (snake.tailx[0] == fx && snake.taily[0] == fy) { // snake grows when in contact with food
wuchyi 1:06958b7bbf65 271 score++;
wuchyi 1:06958b7bbf65 272 food_pos();
wuchyi 1:06958b7bbf65 273 snake.length++;
wuchyi 1:06958b7bbf65 274 // draw_screen();
wuchyi 1:06958b7bbf65 275 }
wuchyi 1:06958b7bbf65 276 //snake_move();
wuchyi 0:1719e11ef162 277 }
wuchyi 0:1719e11ef162 278
wuchyi 0:1719e11ef162 279
wuchyi 0:1719e11ef162 280
wuchyi 0:1719e11ef162 281
wuchyi 0:1719e11ef162 282
wuchyi 1:06958b7bbf65 283 void food_pos() {
wuchyi 1:06958b7bbf65 284 srand(time(NULL));
wuchyi 1:06958b7bbf65 285 fx = rand() % (width - 3) + 2; // random x from 4 to width - 3 for x coordinate
wuchyi 1:06958b7bbf65 286 fy = rand() % (height - 3) + 2; // random y from 4 to height - 3 for y coordinate
wuchyi 0:1719e11ef162 287
wuchyi 1:06958b7bbf65 288 }
wuchyi 0:1719e11ef162 289
wuchyi 1:06958b7bbf65 290 void main_menu() {
wuchyi 1:06958b7bbf65 291 //brightnessTimer.attach(adjust_brightness,0.1);
wuchyi 1:06958b7bbf65 292 joystickTimer.attach(joystick_pos,0.1);
wuchyi 1:06958b7bbf65 293 int select = 0;
wuchyi 1:06958b7bbf65 294 while (1) {
wuchyi 1:06958b7bbf65 295 switch(select) {
wuchyi 1:06958b7bbf65 296 case 0:
wuchyi 1:06958b7bbf65 297 switch(joystick.direction) {
wuchyi 1:06958b7bbf65 298 case UP:
wuchyi 1:06958b7bbf65 299 select = 1;
wuchyi 1:06958b7bbf65 300 break;
wuchyi 1:06958b7bbf65 301 case DOWN:
wuchyi 1:06958b7bbf65 302 select = 1;
wuchyi 1:06958b7bbf65 303 break;
wuchyi 1:06958b7bbf65 304 }
wuchyi 1:06958b7bbf65 305 break;
wuchyi 1:06958b7bbf65 306 case 1:
wuchyi 1:06958b7bbf65 307 switch(joystick.direction) {
wuchyi 1:06958b7bbf65 308 case UP:
wuchyi 1:06958b7bbf65 309 select = 0;
wuchyi 1:06958b7bbf65 310 break;
wuchyi 1:06958b7bbf65 311 case DOWN:
wuchyi 1:06958b7bbf65 312 select = 0;
wuchyi 1:06958b7bbf65 313 break;
wuchyi 1:06958b7bbf65 314 }
wuchyi 1:06958b7bbf65 315 break;
wuchyi 1:06958b7bbf65 316 }
wuchyi 1:06958b7bbf65 317 wait(0.1);
wuchyi 1:06958b7bbf65 318 if (select == 0) {
wuchyi 1:06958b7bbf65 319 lcd.clear();
wuchyi 1:06958b7bbf65 320 lcd.printString("Start Game",7,0);
wuchyi 1:06958b7bbf65 321 lcd.printString("Settings",7,1);
wuchyi 1:06958b7bbf65 322 lcd.drawCircle(3,3,2,1);
wuchyi 1:06958b7bbf65 323 lcd.refresh();
wuchyi 1:06958b7bbf65 324 } else if (select == 1) {
wuchyi 1:06958b7bbf65 325 lcd.clear();
wuchyi 1:06958b7bbf65 326 lcd.printString("Start Game", 7,0);
wuchyi 1:06958b7bbf65 327 lcd.printString("Settings",7,1);
wuchyi 1:06958b7bbf65 328 lcd.drawCircle(3,11,2,1);
wuchyi 1:06958b7bbf65 329 lcd.refresh();
wuchyi 1:06958b7bbf65 330 }
wuchyi 1:06958b7bbf65 331 }
wuchyi 1:06958b7bbf65 332 }
wuchyi 0:1719e11ef162 333
wuchyi 1:06958b7bbf65 334 int main() {
wuchyi 1:06958b7bbf65 335 init_display();
wuchyi 1:06958b7bbf65 336 //brightnessTimer.attach(adjust_brightness,0.1);
wuchyi 1:06958b7bbf65 337 joystickTimer.attach(joystick_pos,0.1);
wuchyi 1:06958b7bbf65 338 calibrate_joystick();
wuchyi 1:06958b7bbf65 339 gamemode = 0;
wuchyi 1:06958b7bbf65 340 //lcd.printString("Hello, World!",0,0);
wuchyi 1:06958b7bbf65 341 //main_menu();
wuchyi 1:06958b7bbf65 342 red_led = 1;
wuchyi 1:06958b7bbf65 343 game();
wuchyi 1:06958b7bbf65 344 /*while(1) {
wuchyi 0:1719e11ef162 345
wuchyi 1:06958b7bbf65 346 lcd.clear();
wuchyi 1:06958b7bbf65 347 if (joystick.direction == UP) {
wuchyi 1:06958b7bbf65 348 lcd.printString ("UP",1,0);
wuchyi 1:06958b7bbf65 349 } else if (joystick.direction == CENTRE) {
wuchyi 1:06958b7bbf65 350 lcd.printString ("CENTRE",1,0);
wuchyi 1:06958b7bbf65 351 } else if (joystick.direction == DOWN) {
wuchyi 1:06958b7bbf65 352 lcd.printString ("DOWN",1,0);
wuchyi 1:06958b7bbf65 353 } else if (joystick.direction == LEFT) {
wuchyi 1:06958b7bbf65 354 lcd.printString ("LEFT",1,0);
wuchyi 1:06958b7bbf65 355 } else if (joystick.direction == RIGHT) {
wuchyi 1:06958b7bbf65 356 lcd.printString ("RIGHT",1,0);
wuchyi 1:06958b7bbf65 357 } else {
wuchyi 1:06958b7bbf65 358 lcd.printString ("UNKNOWN",1,0);
wuchyi 1:06958b7bbf65 359 }
wuchyi 1:06958b7bbf65 360 lcd.refresh();
wuchyi 1:06958b7bbf65 361 wait(1);
wuchyi 1:06958b7bbf65 362 }
wuchyi 1:06958b7bbf65 363 */
wuchyi 0:1719e11ef162 364
wuchyi 0:1719e11ef162 365
wuchyi 0:1719e11ef162 366 }