Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: menu/Menu.h
- Revision:
- 27:354d91d59b6d
- Parent:
- 26:4d193529b447
- Child:
- 29:2d592452e3fb
--- a/menu/Menu.h Tue Apr 28 17:39:26 2020 +0000
+++ b/menu/Menu.h Tue Apr 28 17:58:00 2020 +0000
@@ -5,31 +5,77 @@
#include "N5110.h"
#include "Gamepad.h"
#include "Gameengine.h"
-//*using the UpDown_counter example in class 201.
+/** State for finite state machine struct */
struct State {
- int output;
+ int output;
int next_state[4];
};
-/** Menu class
-* @ 1 build three page to choose
-* @ 2 build a good welcome_page
-* @ 3 connect with the gamepad and makesure the game is working
-* @ date April 27th 2020
-* @ author Yaomochu
+/** Menu Class
+
+* @1 build three page to choose
+* @2 build a good welcome_page
+* @3 connect with the gamepad and makesure the game is working
+* @date April 27th 2020
+* @author Yaomochu
+* @code
+
+#include "N5110.h"
+#include "Gamepad.h"
+#include "mbed.h"
+#include "menu.h"
+
+N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
+Gamepad gamepad;
+menu _menu;
+
+int main() {
+ gamepad.init();
+ _menu.init();
+ lcd.init();
+ lcd.normalMode();
+ lcd.setBrightness(0.5);
+ while(1) {
+
+ // clear, refresh lcd and run the menu.
+ lcd.clear();
+ _menu.run_engine(lcd, gamepad);
+ lcd.refresh();
+ wait(0.01);
+ }
+}
+
+*@endcode
*/
class Menu {
public:
- Menu();
- ~Menu();
- void init();
- void run_engine(N5110 &lcd, Gamepad &gamepad);
- void run_game(N5110 &lcd, Gamepad &gamepad);
+ // Constructor and Destructor.
+ /**
+ * @brief Constructor @details Non user specified.
+ */
+ Menu();
+ /**
+ * @brief Destructor @details Non user specified.
+ */
+ ~Menu();
+ // Mutators
+ /**
+ * @brief Initialises the Menu.
+ */
+ void init();
+ /**
+ * @brief Runs the menu and a state machine.
+ * @param &lcd @details The lcd object from the N5110 class
+ * @param &gamepad @details The gamepad object from Gamepad class
+ */
+ void run_engine(N5110 &lcd, Gamepad &gamepad);
+
private:
+ void run_game(N5110 &lcd, Gamepad &gamepad);
void display_page1(N5110 &lcd, Gamepad &gamepad);
void display_page2(N5110 &lcd, Gamepad &gamepad);
void get_output(N5110 &lcd, Gamepad &gamepad);