A retro gaming programme, designed for use on a portable embedded system. Incorporates power saving techniques.

Dependencies:   ConfigFile N5110 PowerControl beep mbed

Committer:
el13drt
Date:
Fri Apr 17 01:20:47 2015 +0000
Revision:
13:a1b3a373c5a4
Parent:
12:eedda6554615
Child:
14:c2c969e1c6e8
pre sleep mode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el13drt 0:a8bc3aac5f69 1 /**
el13drt 0:a8bc3aac5f69 2 @file main.cpp
el13drt 0:a8bc3aac5f69 3 @brief Program implementation
el13drt 0:a8bc3aac5f69 4 */
el13drt 0:a8bc3aac5f69 5
el13drt 0:a8bc3aac5f69 6 #include "mbed.h"
el13drt 0:a8bc3aac5f69 7 #include "N5110.h"
el13drt 10:947d35365ab8 8 #include "beep.h"
el13drt 12:eedda6554615 9 #include "tower.h"
el13drt 0:a8bc3aac5f69 10
el13drt 0:a8bc3aac5f69 11 #include <ctime>
el13drt 0:a8bc3aac5f69 12 #include <cstdlib>
el13drt 0:a8bc3aac5f69 13
el13drt 0:a8bc3aac5f69 14 int main()
el13drt 0:a8bc3aac5f69 15 {
el13drt 11:6b8416a8ddb3 16 ledR = 1;//power LED on
el13drt 3:57bab3b1c974 17
el13drt 13:a1b3a373c5a4 18 randomise();
el13drt 0:a8bc3aac5f69 19
el13drt 7:217810c90306 20 calibrateJoystick();//get centred values of joystick
el13drt 7:217810c90306 21 pollJoystick.attach(&updateJoystick,1.0/10.0);//read joystick 10 times per second
el13drt 6:fa2928bcec17 22
el13drt 0:a8bc3aac5f69 23 lcd.init();//initialise screen
el13drt 0:a8bc3aac5f69 24 welcome();//welcome screen
el13drt 0:a8bc3aac5f69 25 lcd.clear();//clear pixels
el13drt 0:a8bc3aac5f69 26
el13drt 12:eedda6554615 27 int exitFlag = 0;//exit flag
el13drt 5:a0e4a67266d6 28 int mainOption = 0;//counter for main menu
el13drt 5:a0e4a67266d6 29 int exitOption = 0;//counter for exit menu
el13drt 7:217810c90306 30 int option = 0;//counter for options menu
el13drt 8:457183719776 31 int subOption = 0;//counter for sub options menu
el13drt 13:a1b3a373c5a4 32 int fxOption = 0;//counter for Sound FX menu
el13drt 3:57bab3b1c974 33
el13drt 1:352c50e88ffa 34 while(1) {
el13drt 11:6b8416a8ddb3 35 drawMainMenu();//draws main menu
el13drt 11:6b8416a8ddb3 36 mainMenu(mainOption);//presents main menu options
el13drt 4:c6305031f80d 37
el13drt 11:6b8416a8ddb3 38 // if 'Play Game' selected
el13drt 5:a0e4a67266d6 39 if ((mainOption == 0)&&(buttonA == 1)) {
el13drt 12:eedda6554615 40 game(exitFlag, exitOption);//actual game
el13drt 12:eedda6554615 41 }
el13drt 12:eedda6554615 42 // if 'Scores' selected
el13drt 12:eedda6554615 43 if((mainOption == 1)&&(buttonA == 1)) {
el13drt 12:eedda6554615 44 scores();
el13drt 5:a0e4a67266d6 45 }
el13drt 12:eedda6554615 46 // if 'option' selected
el13drt 5:a0e4a67266d6 47 if((mainOption == 2)&&(buttonA == 1)) {
el13drt 13:a1b3a373c5a4 48 optionsMenu(option, subOption, fxOption);
el13drt 1:352c50e88ffa 49 }
el13drt 0:a8bc3aac5f69 50 }
el13drt 3:57bab3b1c974 51 }