Ikenna Adrian Ozoemena 201157039

Dependencies:   mbed

Committer:
ikenna1
Date:
Wed May 08 09:22:16 2019 +0000
Revision:
41:e1fa36c0492e
Parent:
39:7824f9080f59
Child:
42:ee13e1d103d8
Child:
43:500b8cff3715
Increased lore and cleaned code in preparation for documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ikenna1 0:0d446aab48a6 1 /*
ikenna1 0:0d446aab48a6 2 ELEC2645 Embedded Systems Project
ikenna1 0:0d446aab48a6 3 School of Electronic & Electrical Engineering
ikenna1 0:0d446aab48a6 4 University of Leeds
ikenna1 0:0d446aab48a6 5 Name: Ikenna Adrian Ozoemena
ikenna1 0:0d446aab48a6 6 Username: el17aio
ikenna1 0:0d446aab48a6 7 Student ID Number: 201157039
ikenna1 0:0d446aab48a6 8 Date: 20/02/2019
ikenna1 1:9835d6304284 9 */
ikenna1 1:9835d6304284 10
ikenna1 3:f9cd1a38d5c6 11 //______________pre-processor directives________________________________________
ikenna1 2:66a4e5d7a7cd 12 #include "mbed.h"
ikenna1 2:66a4e5d7a7cd 13 #include "N5110.h"
ikenna1 8:87a845b8575e 14 #include "RosenEngine.h"
ikenna1 9:241a1a7d8527 15 #include "Menu.h"
ikenna1 3:f9cd1a38d5c6 16
ikenna1 3:f9cd1a38d5c6 17 //_______________objects________________________________________________________
ikenna1 3:f9cd1a38d5c6 18 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
ikenna1 3:f9cd1a38d5c6 19 Gamepad pad;
ikenna1 9:241a1a7d8527 20 RosenEngine rosen;
ikenna1 9:241a1a7d8527 21 Menu menu;
ikenna1 3:f9cd1a38d5c6 22
ikenna1 3:f9cd1a38d5c6 23 //_______________prototypes_____________________________________________________
ikenna1 3:f9cd1a38d5c6 24 void init();
ikenna1 3:f9cd1a38d5c6 25 void welcome();
ikenna1 9:241a1a7d8527 26 void render();
ikenna1 12:47578eb9ea73 27 void ship_select();
ikenna1 3:f9cd1a38d5c6 28
ikenna1 3:f9cd1a38d5c6 29 //_______________functions______________________________________________________
ikenna1 3:f9cd1a38d5c6 30 int main()
ikenna1 3:f9cd1a38d5c6 31 {
ikenna1 10:c33d7593a275 32 int fps = 12;
ikenna1 10:c33d7593a275 33 init();
ikenna1 9:241a1a7d8527 34 printf("Init function completed...\n");
ikenna1 3:f9cd1a38d5c6 35
ikenna1 10:c33d7593a275 36 while(1) {
ikenna1 10:c33d7593a275 37 welcome();
ikenna1 35:3341f2bd0408 38 printf("welcome()\n");
ikenna1 27:f99249e727fd 39 rosen.reset();
ikenna1 35:3341f2bd0408 40 printf("reset()\n");
ikenna1 13:e114d362186d 41 //printf("ycursor = %d",rosen.get_ycursor());
ikenna1 10:c33d7593a275 42
ikenna1 13:e114d362186d 43 if(rosen.get_ycursor() == 16) {
ikenna1 36:c25417f0d150 44 // printf("get_ycursor() == 16()\n");
ikenna1 38:4571537238ed 45 while ( pad.check_event(Gamepad::BACK_PRESSED) == false && rosen.dead() == false) {
ikenna1 10:c33d7593a275 46 // printf("play...\n");
ikenna1 10:c33d7593a275 47 rosen.read_input(pad);
ikenna1 35:3341f2bd0408 48 // printf("read_input\n");
ikenna1 10:c33d7593a275 49 rosen.update(pad);
ikenna1 35:3341f2bd0408 50 // printf("update\n");
ikenna1 10:c33d7593a275 51 render();
ikenna1 35:3341f2bd0408 52 // printf("render()\n");
ikenna1 10:c33d7593a275 53 wait(1.0f/fps);
ikenna1 38:4571537238ed 54 rosen.timer(fps);
ikenna1 10:c33d7593a275 55 }
ikenna1 10:c33d7593a275 56 }
ikenna1 13:e114d362186d 57 if(rosen.get_ycursor() == 24) {
ikenna1 10:c33d7593a275 58 while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
ikenna1 12:47578eb9ea73 59 rosen.read_input(pad);
ikenna1 12:47578eb9ea73 60 rosen.update(pad);
ikenna1 12:47578eb9ea73 61 ship_select();
ikenna1 12:47578eb9ea73 62 wait(1.0f/fps);
ikenna1 21:628fb703188f 63 printf("ship = %d\n",rosen.get_shipno());
ikenna1 10:c33d7593a275 64 // printf("menu...\n");
ikenna1 10:c33d7593a275 65 }
ikenna1 9:241a1a7d8527 66 }
ikenna1 3:f9cd1a38d5c6 67 }
ikenna1 3:f9cd1a38d5c6 68 }
ikenna1 1:9835d6304284 69
ikenna1 3:f9cd1a38d5c6 70 void init()
ikenna1 3:f9cd1a38d5c6 71 {
ikenna1 3:f9cd1a38d5c6 72 // need to initialise LCD and Gamepad
ikenna1 3:f9cd1a38d5c6 73 lcd.init();
ikenna1 3:f9cd1a38d5c6 74 pad.init();
ikenna1 9:241a1a7d8527 75 rosen.init(9,6,3,42,41);
ikenna1 35:3341f2bd0408 76 printf("Initializing...\n");
ikenna1 3:f9cd1a38d5c6 77
ikenna1 3:f9cd1a38d5c6 78 }
ikenna1 9:241a1a7d8527 79 void render()
ikenna1 9:241a1a7d8527 80 {
ikenna1 9:241a1a7d8527 81 // clear screen, re-draw and refresh
ikenna1 9:241a1a7d8527 82 lcd.clear();
ikenna1 14:88ca5b1a111a 83 rosen.draw(lcd, pad);
ikenna1 9:241a1a7d8527 84 rosen.get_pos();
ikenna1 9:241a1a7d8527 85 lcd.refresh();
ikenna1 35:3341f2bd0408 86 // printf("Rendering...\n");
ikenna1 9:241a1a7d8527 87 }
ikenna1 12:47578eb9ea73 88 void ship_select()
ikenna1 12:47578eb9ea73 89 {
ikenna1 12:47578eb9ea73 90 lcd.clear();
ikenna1 12:47578eb9ea73 91 rosen.ship_select(lcd);
ikenna1 12:47578eb9ea73 92 rosen.get_pos();
ikenna1 12:47578eb9ea73 93 lcd.refresh();
ikenna1 35:3341f2bd0408 94 printf("Ship Select...\n");
ikenna1 12:47578eb9ea73 95 }
ikenna1 3:f9cd1a38d5c6 96
ikenna1 3:f9cd1a38d5c6 97 // simple splash screen displayed on start-up
ikenna1 3:f9cd1a38d5c6 98 void welcome()
ikenna1 3:f9cd1a38d5c6 99 {
ikenna1 18:2cc6898de6b2 100 while( pad.check_event(Gamepad::START_PRESSED) == false) {
ikenna1 30:711d722f3cef 101 lcd.clear();
ikenna1 9:241a1a7d8527 102 rosen.title(lcd);
ikenna1 9:241a1a7d8527 103 rosen.read_input(pad);
ikenna1 9:241a1a7d8527 104 lcd.refresh();
ikenna1 9:241a1a7d8527 105 }
ikenna1 9:241a1a7d8527 106 printf("Welcome Function completed...\n");
ikenna1 3:f9cd1a38d5c6 107 }