The present code implements a single player squash game, using joystick to move paddle right or left. And checks the current temperature inside the device.

Dependencies:   mbed

Dependents:   Squash_Project

Committer:
bonnyngangu
Date:
Wed May 11 14:42:02 2016 +0000
Revision:
2:603d838c1084
Updated version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bonnyngangu 2:603d838c1084 1 #ifndef MAIN_H
bonnyngangu 2:603d838c1084 2 #define MAIN_H
bonnyngangu 2:603d838c1084 3
bonnyngangu 2:603d838c1084 4 #include "mbed.h"
bonnyngangu 2:603d838c1084 5 #include "N5110.h" /// to enable access and use of the N5110 classes.
bonnyngangu 2:603d838c1084 6
bonnyngangu 2:603d838c1084 7 #define DIRECTION_TOLERANCE 0.25 /// changing to this value enables altering tolerance of joystick direction
bonnyngangu 2:603d838c1084 8
bonnyngangu 2:603d838c1084 9 /**
bonnyngangu 2:603d838c1084 10 @namespace Nokia 5110_lcd
bonnyngangu 2:603d838c1084 11 @brief lcd display
bonnyngangu 2:603d838c1084 12 */
bonnyngangu 2:603d838c1084 13 /// VCC, SCE, RST, D/C, MOSI, SCLK, LED
bonnyngangu 2:603d838c1084 14 N5110 lcd (PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3);
bonnyngangu 2:603d838c1084 15 /// Can also power (VCC) directly from VOUT (3.3 V) -
bonnyngangu 2:603d838c1084 16 /// Can give better performance due to current limitation from GPIO pin
bonnyngangu 2:603d838c1084 17
bonnyngangu 2:603d838c1084 18 /**
bonnyngangu 2:603d838c1084 19 @namespace buzzer
bonnyngangu 2:603d838c1084 20 @brief buzzer connection
bonnyngangu 2:603d838c1084 21 */
bonnyngangu 2:603d838c1084 22 PwmOut buzzer(PTA2); /// buzzer connection to PwmOut.
bonnyngangu 2:603d838c1084 23
bonnyngangu 2:603d838c1084 24 /**
bonnyngangu 2:603d838c1084 25 @namespace button
bonnyngangu 2:603d838c1084 26 @brief button connection
bonnyngangu 2:603d838c1084 27 */
bonnyngangu 2:603d838c1084 28 InterruptIn interrupt_button(PTB18); // interrupting the sleep mode.
bonnyngangu 2:603d838c1084 29
bonnyngangu 2:603d838c1084 30 /**
bonnyngangu 2:603d838c1084 31 @namespace buttonjoystick
bonnyngangu 2:603d838c1084 32 @brief buttonjoystick connection
bonnyngangu 2:603d838c1084 33 */
bonnyngangu 2:603d838c1084 34 DigitalIn button(PTB10); /// connections for joystick
bonnyngangu 2:603d838c1084 35
bonnyngangu 2:603d838c1084 36 /**
bonnyngangu 2:603d838c1084 37 @namespace xPot
bonnyngangu 2:603d838c1084 38 @brief joystick movement in x-axis.
bonnyngangu 2:603d838c1084 39 */
bonnyngangu 2:603d838c1084 40 AnalogIn xPot(PTB2); /// X-axisconnections for joystick
bonnyngangu 2:603d838c1084 41
bonnyngangu 2:603d838c1084 42 /**
bonnyngangu 2:603d838c1084 43 @namespace yPot
bonnyngangu 2:603d838c1084 44 @brief joystick movement in y-axis.
bonnyngangu 2:603d838c1084 45 */
bonnyngangu 2:603d838c1084 46 AnalogIn yPot(PTB3); /// Y-axisconnections for joystick
bonnyngangu 2:603d838c1084 47
bonnyngangu 2:603d838c1084 48 Ticker pollJoystick;/// regular reading of the joystick position.
bonnyngangu 2:603d838c1084 49
bonnyngangu 2:603d838c1084 50 Serial serial(USBTX,USBRX);/// Serial for debug
bonnyngangu 2:603d838c1084 51
bonnyngangu 2:603d838c1084 52 /**
bonnyngangu 2:603d838c1084 53 create enumerated type (0,1,2,3 etc. for direction)
bonnyngangu 2:603d838c1084 54 could be extended for diagonals etc.
bonnyngangu 2:603d838c1084 55 */
bonnyngangu 2:603d838c1084 56 enum DirectionName {
bonnyngangu 2:603d838c1084 57 UP,
bonnyngangu 2:603d838c1084 58 DOWN,
bonnyngangu 2:603d838c1084 59 LEFT,
bonnyngangu 2:603d838c1084 60 RIGHT,
bonnyngangu 2:603d838c1084 61 CENTRE,
bonnyngangu 2:603d838c1084 62 UNKNOWN
bonnyngangu 2:603d838c1084 63 };
bonnyngangu 2:603d838c1084 64
bonnyngangu 2:603d838c1084 65 typedef struct JoyStick Joystick;// for Joystick structure
bonnyngangu 2:603d838c1084 66
bonnyngangu 2:603d838c1084 67 struct JoyStick {
bonnyngangu 2:603d838c1084 68 float x; /// current x value
bonnyngangu 2:603d838c1084 69 float x0; /// 'centred' x value
bonnyngangu 2:603d838c1084 70 float y; /// current y value
bonnyngangu 2:603d838c1084 71 float y0; /// 'centred' y value
bonnyngangu 2:603d838c1084 72 int buttonjoystick; /// button state (assume pull-down used, so 1 = pressed, 0 = unpressed)
bonnyngangu 2:603d838c1084 73 DirectionName direction; /// current direction
bonnyngangu 2:603d838c1084 74 };
bonnyngangu 2:603d838c1084 75
bonnyngangu 2:603d838c1084 76 Joystick joystick;/// creating struct variables
bonnyngangu 2:603d838c1084 77
bonnyngangu 2:603d838c1084 78 volatile int g_button_flag = 0;/// setting the "g_button_flag" original value to Zero.
bonnyngangu 2:603d838c1084 79
bonnyngangu 2:603d838c1084 80 /**
bonnyngangu 2:603d838c1084 81 initialize the position of the joystick.
bonnyngangu 2:603d838c1084 82 */
bonnyngangu 2:603d838c1084 83 // initialising joystick position.
bonnyngangu 2:603d838c1084 84 void calibrateJoystick();
bonnyngangu 2:603d838c1084 85
bonnyngangu 2:603d838c1084 86 /**
bonnyngangu 2:603d838c1084 87 read the current joystick value.
bonnyngangu 2:603d838c1084 88 */
bonnyngangu 2:603d838c1084 89 // reading the current value of joystick .
bonnyngangu 2:603d838c1084 90 void updateJoystick();
bonnyngangu 2:603d838c1084 91
bonnyngangu 2:603d838c1084 92 /**
bonnyngangu 2:603d838c1084 93 return back button_isr value.
bonnyngangu 2:603d838c1084 94 */
bonnyngangu 2:603d838c1084 95 void button_isr();
bonnyngangu 2:603d838c1084 96
bonnyngangu 2:603d838c1084 97 int status = 1;/// setting the status at the origin.
bonnyngangu 2:603d838c1084 98 int printFlag = 0;/// this sets Flags value to Zero
bonnyngangu 2:603d838c1084 99
bonnyngangu 2:603d838c1084 100 #endif