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.
main.h@2:603d838c1084, 2016-05-11 (annotated)
- Committer:
- bonnyngangu
- Date:
- Wed May 11 14:42:02 2016 +0000
- Revision:
- 2:603d838c1084
Updated version
Who changed what in which revision?
User | Revision | Line number | New 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 |