Hugo Hu / Mbed 2 deprecated BRAVEHEART

Dependencies:   mbed N5110 ShiftReg PinDetect

Committer:
Siriagus
Date:
Sun Apr 26 17:20:09 2015 +0000
Revision:
0:1f92de30d43e
Child:
1:0cfe2255092a
Added Joystick support.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Siriagus 0:1f92de30d43e 1 /**
Siriagus 0:1f92de30d43e 2 @brief Simple platform game developed for ELEC2645 Embedded Systems Project at University of Leeds
Siriagus 0:1f92de30d43e 3
Siriagus 0:1f92de30d43e 4 @author Andreas Garmannslund
Siriagus 0:1f92de30d43e 5 **/
Siriagus 0:1f92de30d43e 6
Siriagus 0:1f92de30d43e 7 #include "mbed.h"
Siriagus 0:1f92de30d43e 8 #include "N5110.h"
Siriagus 0:1f92de30d43e 9 #include "Joystick.h"
Siriagus 0:1f92de30d43e 10 #include "map.h"
Siriagus 0:1f92de30d43e 11 #include <ctime>
Siriagus 0:1f92de30d43e 12
Siriagus 0:1f92de30d43e 13 // Components
Siriagus 0:1f92de30d43e 14 N5110 *lcd; // VCC, SCE, RST, D/C, MOSI, SCLK and LED
Siriagus 0:1f92de30d43e 15 Joystick *joystick;
Siriagus 0:1f92de30d43e 16
Siriagus 0:1f92de30d43e 17 // Brightness potentiometer
Siriagus 0:1f92de30d43e 18 AnalogIn ledPot(p20);
Siriagus 0:1f92de30d43e 19
Siriagus 0:1f92de30d43e 20 // Buttons
Siriagus 0:1f92de30d43e 21 DigitalIn btnA(p27);
Siriagus 0:1f92de30d43e 22 DigitalIn btnB(p28);
Siriagus 0:1f92de30d43e 23 DigitalIn btnC(p29);
Siriagus 0:1f92de30d43e 24
Siriagus 0:1f92de30d43e 25 // Debugging
Siriagus 0:1f92de30d43e 26 Serial pc(USBTX, USBRX);
Siriagus 0:1f92de30d43e 27 BusOut leds(LED1, LED2, LED3, LED4);
Siriagus 0:1f92de30d43e 28
Siriagus 0:1f92de30d43e 29 // @brief Clears the screen and fill it with the static map layout.
Siriagus 0:1f92de30d43e 30 void clearAndRedrawMap()
Siriagus 0:1f92de30d43e 31 {
Siriagus 0:1f92de30d43e 32 for (int i = 0; i < BANKS; ++i)
Siriagus 0:1f92de30d43e 33 {
Siriagus 0:1f92de30d43e 34 for (int j = 0; j < WIDTH; ++j)
Siriagus 0:1f92de30d43e 35 {
Siriagus 0:1f92de30d43e 36 lcd->buffer[j][i] = map[i][j];
Siriagus 0:1f92de30d43e 37 }
Siriagus 0:1f92de30d43e 38 }
Siriagus 0:1f92de30d43e 39 lcd->refresh();
Siriagus 0:1f92de30d43e 40 }
Siriagus 0:1f92de30d43e 41
Siriagus 0:1f92de30d43e 42 int main()
Siriagus 0:1f92de30d43e 43 {
Siriagus 0:1f92de30d43e 44 // Init LCD
Siriagus 0:1f92de30d43e 45 lcd = new N5110(p7, p8, p9, p10, p11, p13, p26);
Siriagus 0:1f92de30d43e 46 lcd->init();
Siriagus 0:1f92de30d43e 47 lcd->normalMode();
Siriagus 0:1f92de30d43e 48 lcd->setBrightness(1.0 - ledPot); // Update brightness of screen
Siriagus 0:1f92de30d43e 49
Siriagus 0:1f92de30d43e 50 // Init joystick
Siriagus 0:1f92de30d43e 51 joystick = new Joystick(p17, p16, p15);
Siriagus 0:1f92de30d43e 52 joystick->calibrate();
Siriagus 0:1f92de30d43e 53
Siriagus 0:1f92de30d43e 54 // Game loop
Siriagus 0:1f92de30d43e 55 while(true)
Siriagus 0:1f92de30d43e 56 {
Siriagus 0:1f92de30d43e 57 clearAndRedrawMap();
Siriagus 0:1f92de30d43e 58
Siriagus 0:1f92de30d43e 59 joystick->update();
Siriagus 0:1f92de30d43e 60 pc.printf("Joystick direction: %d\n", joystick->getDirection());
Siriagus 0:1f92de30d43e 61
Siriagus 0:1f92de30d43e 62 lcd->setBrightness(1.0 - ledPot); // Update brightness of screen
Siriagus 0:1f92de30d43e 63
Siriagus 0:1f92de30d43e 64 wait (0.1);
Siriagus 0:1f92de30d43e 65 }
Siriagus 0:1f92de30d43e 66
Siriagus 0:1f92de30d43e 67 delete lcd;
Siriagus 0:1f92de30d43e 68 delete joystick;
Siriagus 0:1f92de30d43e 69
Siriagus 0:1f92de30d43e 70 return 0;
Siriagus 0:1f92de30d43e 71 }
Siriagus 0:1f92de30d43e 72