ELEC2645 (2017/18) / Mbed OS el16ajm
Committer:
Andrew_M
Date:
Mon Apr 16 09:07:17 2018 +0000
Revision:
1:a14415de3ad5
Parent:
0:66e5b37c127e
Child:
2:9ca5e1c221c3
First overall structure complete

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Andrew_M 0:66e5b37c127e 1 /*
Andrew_M 0:66e5b37c127e 2 ELEC2645 Embedded Systems Project
Andrew_M 0:66e5b37c127e 3 School of Electronic & Electrical Engineering
Andrew_M 0:66e5b37c127e 4 University of Leeds
Andrew_M 0:66e5b37c127e 5 Name:
Andrew_M 0:66e5b37c127e 6 Username:
Andrew_M 0:66e5b37c127e 7 Student ID Number:
Andrew_M 0:66e5b37c127e 8 Date:
Andrew_M 0:66e5b37c127e 9 */
Andrew_M 0:66e5b37c127e 10
Andrew_M 0:66e5b37c127e 11 #include "mbed.h"
Andrew_M 1:a14415de3ad5 12 #include "Gamepad.h"
Andrew_M 1:a14415de3ad5 13 #include "N5110.h"
Andrew_M 1:a14415de3ad5 14 #include "Engine.h"
Andrew_M 0:66e5b37c127e 15
Andrew_M 1:a14415de3ad5 16 /////////////// structs /////////////////
Andrew_M 1:a14415de3ad5 17 struct UserInput {
Andrew_M 1:a14415de3ad5 18 Direction d;
Andrew_M 1:a14415de3ad5 19 float mag;
Andrew_M 1:a14415de3ad5 20 };
Andrew_M 1:a14415de3ad5 21
Andrew_M 1:a14415de3ad5 22 /////////////// objects ///////////////
Andrew_M 1:a14415de3ad5 23 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Andrew_M 1:a14415de3ad5 24 Gamepad pad;
Andrew_M 1:a14415de3ad5 25 Engine gameEngine;
Andrew_M 0:66e5b37c127e 26
Andrew_M 1:a14415de3ad5 27 ///////////// prototypes ///////////////
Andrew_M 1:a14415de3ad5 28 void init();
Andrew_M 1:a14415de3ad5 29 void update_game(UserInput input);
Andrew_M 1:a14415de3ad5 30 void render();
Andrew_M 1:a14415de3ad5 31 void welcome();
Andrew_M 1:a14415de3ad5 32
Andrew_M 1:a14415de3ad5 33 ///////////// functions ////////////////
Andrew_M 1:a14415de3ad5 34 int main()
Andrew_M 1:a14415de3ad5 35 {
Andrew_M 1:a14415de3ad5 36 init();
Andrew_M 1:a14415de3ad5 37 welcome();
Andrew_M 1:a14415de3ad5 38 }
Andrew_M 1:a14415de3ad5 39
Andrew_M 1:a14415de3ad5 40 void welcome()
Andrew_M 1:a14415de3ad5 41 {
Andrew_M 1:a14415de3ad5 42 lcd.printString(" Snake! ",0,1);
Andrew_M 1:a14415de3ad5 43 lcd.printString(" Press Start ",0,4);
Andrew_M 1:a14415de3ad5 44 lcd.refresh();
Andrew_M 1:a14415de3ad5 45
Andrew_M 1:a14415de3ad5 46 // wait flashing LEDs until start button is pressed
Andrew_M 1:a14415de3ad5 47 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
Andrew_M 1:a14415de3ad5 48 pad.leds_on();
Andrew_M 1:a14415de3ad5 49 wait(0.1);
Andrew_M 1:a14415de3ad5 50 pad.leds_off();
Andrew_M 1:a14415de3ad5 51 wait(0.1);
Andrew_M 0:66e5b37c127e 52 }
Andrew_M 0:66e5b37c127e 53 }
Andrew_M 0:66e5b37c127e 54
Andrew_M 1:a14415de3ad5 55 void init()
Andrew_M 1:a14415de3ad5 56 {
Andrew_M 1:a14415de3ad5 57 // need to initialise LCD and Gamepad
Andrew_M 1:a14415de3ad5 58 lcd.init();
Andrew_M 1:a14415de3ad5 59 pad.init();
Andrew_M 1:a14415de3ad5 60
Andrew_M 1:a14415de3ad5 61 }