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 20:23:31 2015 +0000
Revision:
15:ff3eb0091453
Parent:
14:c2c969e1c6e8
Child:
16:93ae2f311fd8
pre switch

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 14:c2c969e1c6e8 10 #include "PowerControl/PowerControl.h"
el13drt 0:a8bc3aac5f69 11
el13drt 0:a8bc3aac5f69 12 #include <ctime>
el13drt 0:a8bc3aac5f69 13 #include <cstdlib>
el13drt 0:a8bc3aac5f69 14
el13drt 0:a8bc3aac5f69 15 int main()
el13drt 0:a8bc3aac5f69 16 {
el13drt 11:6b8416a8ddb3 17 ledR = 1;//power LED on
el13drt 14:c2c969e1c6e8 18 randomise();//randomises falling hazards (initial values only)
el13drt 7:217810c90306 19 calibrateJoystick();//get centred values of joystick
el13drt 7:217810c90306 20 pollJoystick.attach(&updateJoystick,1.0/10.0);//read joystick 10 times per second
el13drt 6:fa2928bcec17 21
el13drt 0:a8bc3aac5f69 22 lcd.init();//initialise screen
el13drt 0:a8bc3aac5f69 23 welcome();//welcome screen
el13drt 0:a8bc3aac5f69 24 lcd.clear();//clear pixels
el13drt 0:a8bc3aac5f69 25
el13drt 12:eedda6554615 26 int exitFlag = 0;//exit flag
el13drt 5:a0e4a67266d6 27 int mainOption = 0;//counter for main menu
el13drt 5:a0e4a67266d6 28 int exitOption = 0;//counter for exit menu
el13drt 14:c2c969e1c6e8 29
el13drt 15:ff3eb0091453 30 buttonA.mode(PullDown);
el13drt 15:ff3eb0091453 31 buttonB.mode(PullDown);
el13drt 15:ff3eb0091453 32
el13drt 15:ff3eb0091453 33 timer.attach(&timerExpiredA, 0.1);//checks state of buttonA
el13drt 15:ff3eb0091453 34 timer2.attach(&timerExpiredB, 0.1);//checks state of buttonB
el13drt 14:c2c969e1c6e8 35
el13drt 1:352c50e88ffa 36 while(1) {
el13drt 11:6b8416a8ddb3 37 drawMainMenu();//draws main menu
el13drt 11:6b8416a8ddb3 38 mainMenu(mainOption);//presents main menu options
el13drt 4:c6305031f80d 39
el13drt 11:6b8416a8ddb3 40 // if 'Play Game' selected
el13drt 15:ff3eb0091453 41 if ((mainOption == 0)&&(buttonFlagA)) {
el13drt 15:ff3eb0091453 42 buttonFlagA = 0;
el13drt 12:eedda6554615 43 game(exitFlag, exitOption);//actual game
el13drt 12:eedda6554615 44 }
el13drt 12:eedda6554615 45 // if 'Scores' selected
el13drt 15:ff3eb0091453 46 if((mainOption == 1)&&(buttonFlagA)) {
el13drt 15:ff3eb0091453 47 buttonFlagA = 0;
el13drt 12:eedda6554615 48 scores();
el13drt 5:a0e4a67266d6 49 }
el13drt 12:eedda6554615 50 // if 'option' selected
el13drt 15:ff3eb0091453 51 if((mainOption == 2)&&(buttonFlagA)) {
el13drt 15:ff3eb0091453 52 buttonFlagA = 0;
el13drt 14:c2c969e1c6e8 53 optionsMenu();
el13drt 1:352c50e88ffa 54 }
el13drt 15:ff3eb0091453 55 sleep();
el13drt 0:a8bc3aac5f69 56 }
el13drt 3:57bab3b1c974 57 }