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: N5110 PinDetect PowerControl mbed
Fork of DocTest by
Revision 2:deb61a34ac31, committed 2015-04-08
- Comitter:
- MBirney
- Date:
- Wed Apr 08 20:00:37 2015 +0000
- Parent:
- 1:6fc14cd8ccf1
- Child:
- 3:478b090b7e1b
- Commit message:
- Splash screen and working on switch statement for difficulty menu
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/N5110.lib Wed Apr 08 20:00:37 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/eencae/code/N5110/#780a542d5f8b
--- a/main.cpp Wed Mar 11 16:03:08 2015 +0000
+++ b/main.cpp Wed Apr 08 20:00:37 2015 +0000
@@ -1,25 +1,156 @@
-/**
-@file main.cpp
+#include "mbed.h"
+#include "N5110.h"
+
+// VCC,SCE,RST,D/C,MOSI,SCLK,LED
+N5110 lcd(p7,p8,p9,p10,p11,p13,p21);
+//d
-@brief Program implementation
+// Can also power (VCC) directly from VOUT (3.3 V) -
+// Can give better performance due to current limitation from GPIO pin
+enum Difficulty {
+ EASY,
+ MEDIUM,
+ HARD,
+};
+int gameSpeed;//change depending on difficulty selected
-*/
-#include "main.h"
+Difficulty currentDifficulty =EASY;
-int main() {
-
- /// flash LED in infinite loop
- while(1) {
- myled = 1;
- wait(0.2);
- myled = 0;
- wait(0.2);
- }
+void displaySplash()
+{
+ // these are default settings so not strictly needed
+ lcd.inverseMode(); // normal colour mode
+ lcd.setBrightness(0.5); // put LED backlight on 50%
+
+ //Draw S
+ lcd.drawRect(28,10,2,5,1);
+ lcd.drawRect(15,10,15,2,1);
+ lcd.drawRect(15,10,2,10,1);
+ lcd.drawRect(15,20,15,2,1);
+ lcd.drawRect(28,20,2,10,1);
+ lcd.drawRect(15,28,15,2,1);
+ lcd.drawRect(15,25,2,3,1);
+
+ lcd.printString("NAKE ",34,3);
+ lcd.printString("By M.Birney",10,5);
+ lcd.drawRect(10,5,65,30,0);
+
+ // need to refresh display after setting pixels
+
+ lcd.refresh();
}
-int sum(int a, int b) {
-
- /// calculate the sum of the two arguments and return
- return a + b;
+
+void easySelected() // display when easy is selected
+{
+ lcd.clear();
+ lcd.printString("Please Select",2,0);
+ lcd.printString("Difficulty:",2,1);
+ lcd.printString("Easy",20,3);
+ lcd.printString("Medium",20,4);
+ lcd.printString("Hard",20,5);
+ lcd.refresh();
+ lcd.drawCircle(10,27,2,1);
+ lcd.drawCircle(10,35,2,0);
+ lcd.drawCircle(10,43,2,0);
+
+ gameSpeed= 1.0;
+}
+void mediumSelected() // display when medium is selected
+{
+ lcd.clear();
+ lcd.printString("Please Select",2,0);
+ lcd.printString("Difficulty:",2,1);
+ lcd.printString("Easy",20,3);
+ lcd.printString("Medium",20,4);
+ lcd.printString("Hard",20,5);
+ lcd.refresh();
+ lcd.drawCircle(10,27,2,0);
+ lcd.drawCircle(10,35,2,1);
+ lcd.drawCircle(10,43,2,0);
+ gameSpeed=1.0/4;
+}
+
+void hardSelected() // display when hard is selected
+{
+ lcd.clear();
+ lcd.printString("Please Select",2,0);
+ lcd.printString("Difficulty:",2,1);
+ lcd.printString("Easy",20,3);
+ lcd.printString("Medium",20,4);
+ lcd.printString("Hard",20,5);
+ lcd.refresh();
+ lcd.drawCircle(10,27,2,0);
+ lcd.drawCircle(10,35,2,0);
+ lcd.drawCircle(10,43,2,1);
+ gameSpeed=1.0/8;
+}
+
+
+
+int main()
+{
+ // first need to initialise display
+ lcd.init();
+ displaySplash();
+ wait(1);
+
+ easySelected();
+ wait(2);
+ mediumSelected();
+ wait(2);
+ hardSelected();
+
+ while(1) {
+
+ switch(currentDifficulty) {
+ case EASY:
+
+ switch (joystick.direction)
+
+ case UP:
+ hardSelected;
+ break;
+
+
+ case DOWN:
+ mediumSelected;
+ break;
+
+ break;
+
+
+ case MEDIUM:
+
+ switch (joystick.direction)
+
+ case UP:
+ easySelected;
+ break;
+
+
+ case DOWN:
+ hardSelected;
+ break;
+
+
+
+ break;
+ case HARD:
+ switch (joystick.direction)
+
+ case UP:
+ mediumSelected;
+ break;
+
+
+ case DOWN:
+ easySelected;
+ break;
+ break;
+ }
+
+
+ }
}
\ No newline at end of file
--- a/main.h Wed Mar 11 16:03:08 2015 +0000 +++ b/main.h Wed Apr 08 20:00:37 2015 +0000 @@ -1,33 +1,15 @@ /** @file main.h @brief Header file containing functions prototypes, defines and global variables. -@brief Shows examples of creating Doxygen documentation. +@brief Game of Snake @brief Revision 1.0. -@author Craig A. Evans -@date March 2015 +@author Michael Birney +@date April 2015 */ -#ifndef MAIN_H -#define MAIN_H -#define PI 3.14159265359 - -#include "mbed.h" - -/** -@namespace myled -@brief GPIO output for status LED +/** +Displays a Snake Logo Splash Screen */ -DigitalOut myled(LED1); - -int printFlag; /*!< print flag set in ISR */ +void displaySplash(); -/** -Adds up two integer variables -@param a - integer to add -@param b - integer to add -@returns the sum of a and b -*/ -int sum(int a, int b); - -#endif
