A retro gaming programme, designed for use on a portable embedded system. Incorporates power saving techniques.
Dependencies: ConfigFile N5110 PowerControl beep mbed
main.cpp@15:ff3eb0091453, 2015-04-17 (annotated)
- 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?
User | Revision | Line number | New 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 | } |