My ELEC2645 project. Nikollao Sulollari. 200804685
Dependencies: N5110 SoftPWM mbed
Fork of Treasure_Hunt by
main.h@20:59aa6189a47d, 2016-05-02 (annotated)
- Committer:
- Nikollao
- Date:
- Mon May 02 17:57:27 2016 +0000
- Revision:
- 20:59aa6189a47d
- Parent:
- 19:70d40dac5ae0
- Child:
- 21:6b02ef341358
levels finished, need to finish buzzer and button weapon! :)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Nikollao | 5:ffa498d7071f | 1 | /** |
Nikollao | 5:ffa498d7071f | 2 | @file main.h |
Nikollao | 5:ffa498d7071f | 3 | @brief Header file contains functions and variables |
Nikollao | 5:ffa498d7071f | 4 | @brief Treasure Hunt - Embedded Systems Project |
Nikollao | 5:ffa498d7071f | 5 | @brief Revision 1.0 |
Nikollao | 5:ffa498d7071f | 6 | @author Nikollao Sulollari |
Nikollao | 5:ffa498d7071f | 7 | @Date 26/03/2016 |
Nikollao | 5:ffa498d7071f | 8 | */ |
Nikollao | 5:ffa498d7071f | 9 | |
Nikollao | 5:ffa498d7071f | 10 | #ifndef MAIN_H |
Nikollao | 5:ffa498d7071f | 11 | #define MAIN_H |
Nikollao | 5:ffa498d7071f | 12 | #include "mbed.h" |
Nikollao | 7:f31a4b4beb91 | 13 | #include "N5110.h" |
Nikollao | 11:53caf3d944a9 | 14 | #include "SoftPWM.h" |
Nikollao | 5:ffa498d7071f | 15 | |
Nikollao | 7:f31a4b4beb91 | 16 | #define DIRECTION_TOLERANCE 0.05 |
Nikollao | 7:f31a4b4beb91 | 17 | /** |
Nikollao | 7:f31a4b4beb91 | 18 | @nameSpace r_led |
Nikollao | 7:f31a4b4beb91 | 19 | @brief output for status of red LED |
Nikollao | 7:f31a4b4beb91 | 20 | */ |
Nikollao | 7:f31a4b4beb91 | 21 | DigitalOut r_led(LED_RED); |
Nikollao | 7:f31a4b4beb91 | 22 | |
Nikollao | 7:f31a4b4beb91 | 23 | /** |
Nikollao | 7:f31a4b4beb91 | 24 | @nameSpace g_led |
Nikollao | 7:f31a4b4beb91 | 25 | @brief output for status of green LED |
Nikollao | 7:f31a4b4beb91 | 26 | */ |
Nikollao | 7:f31a4b4beb91 | 27 | DigitalOut g_led(LED_GREEN); |
Nikollao | 5:ffa498d7071f | 28 | |
Nikollao | 5:ffa498d7071f | 29 | /** |
Nikollao | 7:f31a4b4beb91 | 30 | @nameSpace b_led |
Nikollao | 7:f31a4b4beb91 | 31 | @brief output for status of blue LED |
Nikollao | 5:ffa498d7071f | 32 | */ |
Nikollao | 2:af5b5d42e835 | 33 | DigitalOut b_led(LED_BLUE); |
Nikollao | 2:af5b5d42e835 | 34 | |
Nikollao | 7:f31a4b4beb91 | 35 | /** |
Nikollao | 15:c7af2ea5f164 | 36 | @nameSpace blue_led |
Nikollao | 17:2d424db3975f | 37 | @brief output for status of blue LED, lights when game tool is loaded |
Nikollao | 15:c7af2ea5f164 | 38 | */ |
Nikollao | 15:c7af2ea5f164 | 39 | DigitalOut blue_led(PTA1); |
Nikollao | 15:c7af2ea5f164 | 40 | |
Nikollao | 15:c7af2ea5f164 | 41 | /** |
Nikollao | 17:2d424db3975f | 42 | @nameSpace led_output |
Nikollao | 17:2d424db3975f | 43 | @brief output for status of left tries for the user to win the game |
Nikollao | 15:c7af2ea5f164 | 44 | */ |
Nikollao | 17:2d424db3975f | 45 | BusOut led_output(PTC2,PTA2,PTB23); |
Nikollao | 15:c7af2ea5f164 | 46 | |
Nikollao | 15:c7af2ea5f164 | 47 | /** |
Nikollao | 7:f31a4b4beb91 | 48 | @nameSpace lcd |
Nikollao | 7:f31a4b4beb91 | 49 | @brief object of the N5110 class |
Nikollao | 7:f31a4b4beb91 | 50 | */ |
Nikollao | 7:f31a4b4beb91 | 51 | N5110 lcd(PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3); |
Nikollao | 7:f31a4b4beb91 | 52 | |
Nikollao | 7:f31a4b4beb91 | 53 | /** |
Nikollao | 7:f31a4b4beb91 | 54 | @nameSpace pc |
Nikollao | 7:f31a4b4beb91 | 55 | @brief serial connection between mbed and pc |
Nikollao | 7:f31a4b4beb91 | 56 | */ |
Nikollao | 7:f31a4b4beb91 | 57 | Serial pc(USBTX,USBRX); |
Nikollao | 7:f31a4b4beb91 | 58 | |
Nikollao | 2:af5b5d42e835 | 59 | // K64F on-board switches |
Nikollao | 2:af5b5d42e835 | 60 | InterruptIn sw2(SW2); |
Nikollao | 2:af5b5d42e835 | 61 | InterruptIn sw3(SW3); |
Nikollao | 2:af5b5d42e835 | 62 | |
Nikollao | 7:f31a4b4beb91 | 63 | |
Nikollao | 7:f31a4b4beb91 | 64 | /** |
Nikollao | 7:f31a4b4beb91 | 65 | @nameSpace xPot |
Nikollao | 7:f31a4b4beb91 | 66 | @brief read x-axis position from the value of the joystick |
Nikollao | 7:f31a4b4beb91 | 67 | */ |
Nikollao | 10:1d229362c134 | 68 | AnalogIn xPot(PTB2); |
Nikollao | 7:f31a4b4beb91 | 69 | |
Nikollao | 7:f31a4b4beb91 | 70 | /** |
Nikollao | 7:f31a4b4beb91 | 71 | @nameSpace yPot |
Nikollao | 7:f31a4b4beb91 | 72 | @brief read y-axis position from the value of the joystick |
Nikollao | 7:f31a4b4beb91 | 73 | */ |
Nikollao | 10:1d229362c134 | 74 | AnalogIn yPot(PTB3); |
Nikollao | 10:1d229362c134 | 75 | |
Nikollao | 10:1d229362c134 | 76 | /** |
Nikollao | 10:1d229362c134 | 77 | @nameSpace button |
Nikollao | 10:1d229362c134 | 78 | @brief interrupt executes an event triggered task |
Nikollao | 10:1d229362c134 | 79 | */ |
Nikollao | 10:1d229362c134 | 80 | InterruptIn button(PTB10); |
Nikollao | 10:1d229362c134 | 81 | |
Nikollao | 10:1d229362c134 | 82 | /** |
Nikollao | 10:1d229362c134 | 83 | @nameSpace button |
Nikollao | 10:1d229362c134 | 84 | @brief interrupt executes an event triggered task |
Nikollao | 10:1d229362c134 | 85 | */ |
Nikollao | 10:1d229362c134 | 86 | InterruptIn button1(PTB18); |
Nikollao | 7:f31a4b4beb91 | 87 | |
Nikollao | 7:f31a4b4beb91 | 88 | /** |
Nikollao | 7:f31a4b4beb91 | 89 | @nameSpace buzzer |
Nikollao | 7:f31a4b4beb91 | 90 | @brief create PWM signal to set buzzer duty cycle and period |
Nikollao | 7:f31a4b4beb91 | 91 | */ |
Nikollao | 11:53caf3d944a9 | 92 | SoftPWM buzzer(PTB9); |
Nikollao | 7:f31a4b4beb91 | 93 | |
Nikollao | 7:f31a4b4beb91 | 94 | /** |
Nikollao | 7:f31a4b4beb91 | 95 | @nameSpace ticker |
Nikollao | 7:f31a4b4beb91 | 96 | @brief interrupt executes a time-triggered task |
Nikollao | 7:f31a4b4beb91 | 97 | */ |
Nikollao | 7:f31a4b4beb91 | 98 | Ticker ticker; |
Nikollao | 7:f31a4b4beb91 | 99 | |
Nikollao | 20:59aa6189a47d | 100 | /** |
Nikollao | 20:59aa6189a47d | 101 | @nameSpace timer |
Nikollao | 20:59aa6189a47d | 102 | @brief interface is used to measure the time between start and stop |
Nikollao | 20:59aa6189a47d | 103 | */ |
Nikollao | 20:59aa6189a47d | 104 | Timer timer; |
Nikollao | 9:ce2d9c42edea | 105 | |
Nikollao | 7:f31a4b4beb91 | 106 | /** |
Nikollao | 7:f31a4b4beb91 | 107 | @nameSpace game_ticker |
Nikollao | 7:f31a4b4beb91 | 108 | @brief interrupt executes a time-triggered task |
Nikollao | 7:f31a4b4beb91 | 109 | */ |
Nikollao | 7:f31a4b4beb91 | 110 | Ticker game_ticker; |
Nikollao | 7:f31a4b4beb91 | 111 | |
Nikollao | 7:f31a4b4beb91 | 112 | /** |
Nikollao | 7:f31a4b4beb91 | 113 | @nameSpace timeout |
Nikollao | 7:f31a4b4beb91 | 114 | @brief interrupt calls a function after a specified amount of time |
Nikollao | 7:f31a4b4beb91 | 115 | */ |
Nikollao | 7:f31a4b4beb91 | 116 | Timeout timeout; |
Nikollao | 7:f31a4b4beb91 | 117 | |
Nikollao | 7:f31a4b4beb91 | 118 | |
Nikollao | 7:f31a4b4beb91 | 119 | /** |
Nikollao | 7:f31a4b4beb91 | 120 | @nameSpace DirectionName |
Nikollao | 7:f31a4b4beb91 | 121 | @brief define joystick's direction based on its x,y values |
Nikollao | 7:f31a4b4beb91 | 122 | */ |
Nikollao | 7:f31a4b4beb91 | 123 | enum DirectionName { |
Nikollao | 7:f31a4b4beb91 | 124 | UP, |
Nikollao | 7:f31a4b4beb91 | 125 | DOWN, |
Nikollao | 7:f31a4b4beb91 | 126 | LEFT, |
Nikollao | 7:f31a4b4beb91 | 127 | RIGHT, |
Nikollao | 7:f31a4b4beb91 | 128 | CENTRE, |
Nikollao | 7:f31a4b4beb91 | 129 | UP_LEFT, |
Nikollao | 7:f31a4b4beb91 | 130 | UP_RIGHT, |
Nikollao | 7:f31a4b4beb91 | 131 | DOWN_LEFT, |
Nikollao | 7:f31a4b4beb91 | 132 | DOWN_RIGHT |
Nikollao | 7:f31a4b4beb91 | 133 | }; |
Nikollao | 7:f31a4b4beb91 | 134 | |
Nikollao | 7:f31a4b4beb91 | 135 | /** |
Nikollao | 7:f31a4b4beb91 | 136 | @nameSpace Joystick |
Nikollao | 7:f31a4b4beb91 | 137 | @brief create strcut Joystick |
Nikollao | 7:f31a4b4beb91 | 138 | */ |
Nikollao | 7:f31a4b4beb91 | 139 | typedef struct JoyStick Joystick; |
Nikollao | 7:f31a4b4beb91 | 140 | struct JoyStick { |
Nikollao | 7:f31a4b4beb91 | 141 | double x; /// current x value |
Nikollao | 7:f31a4b4beb91 | 142 | double x0; /// 'centred' x value |
Nikollao | 7:f31a4b4beb91 | 143 | double y; /// current y value |
Nikollao | 7:f31a4b4beb91 | 144 | double y0; /// 'centred' y value |
Nikollao | 7:f31a4b4beb91 | 145 | int button; /// button state (assume pull-down used, so 1 = pressed, 0 = unpressed) |
Nikollao | 7:f31a4b4beb91 | 146 | DirectionName direction; // current direction |
Nikollao | 7:f31a4b4beb91 | 147 | }; |
Nikollao | 7:f31a4b4beb91 | 148 | /// create struct variable |
Nikollao | 7:f31a4b4beb91 | 149 | Joystick joystick; |
Nikollao | 2:af5b5d42e835 | 150 | |
Nikollao | 11:53caf3d944a9 | 151 | int main(); |
Nikollao | 11:53caf3d944a9 | 152 | |
Nikollao | 5:ffa498d7071f | 153 | /** |
Nikollao | 5:ffa498d7071f | 154 | Displays an error message |
Nikollao | 5:ffa498d7071f | 155 | */ |
Nikollao | 2:af5b5d42e835 | 156 | void error(); |
Nikollao | 5:ffa498d7071f | 157 | |
Nikollao | 5:ffa498d7071f | 158 | /** |
Nikollao | 5:ffa498d7071f | 159 | set-up serial port |
Nikollao | 5:ffa498d7071f | 160 | */ |
Nikollao | 2:af5b5d42e835 | 161 | void init_serial(); |
Nikollao | 5:ffa498d7071f | 162 | |
Nikollao | 5:ffa498d7071f | 163 | /** |
Nikollao | 5:ffa498d7071f | 164 | set-up the on-board LEDs and switches |
Nikollao | 5:ffa498d7071f | 165 | */ |
Nikollao | 2:af5b5d42e835 | 166 | void init_K64F(); |
Nikollao | 5:ffa498d7071f | 167 | |
Nikollao | 5:ffa498d7071f | 168 | /** |
Nikollao | 5:ffa498d7071f | 169 | Set-up random variables and game menu |
Nikollao | 5:ffa498d7071f | 170 | */ |
Nikollao | 2:af5b5d42e835 | 171 | void init_game(); |
Nikollao | 5:ffa498d7071f | 172 | |
Nikollao | 5:ffa498d7071f | 173 | /** |
Nikollao | 5:ffa498d7071f | 174 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 175 | */ |
Nikollao | 5:ffa498d7071f | 176 | |
Nikollao | 5:ffa498d7071f | 177 | /** |
Nikollao | 5:ffa498d7071f | 178 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 179 | */ |
Nikollao | 2:af5b5d42e835 | 180 | void timer_isr(); |
Nikollao | 5:ffa498d7071f | 181 | |
Nikollao | 5:ffa498d7071f | 182 | /** |
Nikollao | 5:ffa498d7071f | 183 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 184 | */ |
Nikollao | 5:ffa498d7071f | 185 | |
Nikollao | 5:ffa498d7071f | 186 | /** |
Nikollao | 5:ffa498d7071f | 187 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 188 | */ |
Nikollao | 2:af5b5d42e835 | 189 | void game_timer_isr(); |
Nikollao | 5:ffa498d7071f | 190 | |
Nikollao | 5:ffa498d7071f | 191 | /** |
Nikollao | 5:ffa498d7071f | 192 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 193 | */ |
Nikollao | 2:af5b5d42e835 | 194 | void sw2_isr(); |
Nikollao | 5:ffa498d7071f | 195 | |
Nikollao | 5:ffa498d7071f | 196 | /** |
Nikollao | 5:ffa498d7071f | 197 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 198 | */ |
Nikollao | 2:af5b5d42e835 | 199 | void sw3_isr(); |
Nikollao | 5:ffa498d7071f | 200 | |
Nikollao | 5:ffa498d7071f | 201 | /** |
Nikollao | 5:ffa498d7071f | 202 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 203 | */ |
Nikollao | 2:af5b5d42e835 | 204 | void button_isr(); |
Nikollao | 5:ffa498d7071f | 205 | |
Nikollao | 5:ffa498d7071f | 206 | /** |
Nikollao | 5:ffa498d7071f | 207 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 208 | */ |
Nikollao | 11:53caf3d944a9 | 209 | void button1_isr(); |
Nikollao | 11:53caf3d944a9 | 210 | |
Nikollao | 11:53caf3d944a9 | 211 | /** |
Nikollao | 11:53caf3d944a9 | 212 | Set-up flag to 1 |
Nikollao | 11:53caf3d944a9 | 213 | */ |
Nikollao | 2:af5b5d42e835 | 214 | void timeout_isr(); |
Nikollao | 2:af5b5d42e835 | 215 | |
Nikollao | 9:ce2d9c42edea | 216 | |
Nikollao | 5:ffa498d7071f | 217 | /** |
Nikollao | 5:ffa498d7071f | 218 | Set current position to default position of Joystick |
Nikollao | 5:ffa498d7071f | 219 | */ |
Nikollao | 2:af5b5d42e835 | 220 | void calibrateJoystick(); |
Nikollao | 5:ffa498d7071f | 221 | |
Nikollao | 5:ffa498d7071f | 222 | /** |
Nikollao | 5:ffa498d7071f | 223 | Update the values of the joystick to get current position |
Nikollao | 5:ffa498d7071f | 224 | */ |
Nikollao | 2:af5b5d42e835 | 225 | void updateJoystick(); |
Nikollao | 2:af5b5d42e835 | 226 | |
Nikollao | 5:ffa498d7071f | 227 | /** |
Nikollao | 5:ffa498d7071f | 228 | Create an enemy rectangular shape |
Nikollao | 5:ffa498d7071f | 229 | */ |
Nikollao | 2:af5b5d42e835 | 230 | void enemyRect(); |
Nikollao | 5:ffa498d7071f | 231 | |
Nikollao | 5:ffa498d7071f | 232 | /** |
Nikollao | 19:70d40dac5ae0 | 233 | Create an enemy rectangular shape |
Nikollao | 19:70d40dac5ae0 | 234 | */ |
Nikollao | 19:70d40dac5ae0 | 235 | void enemyRocket(); |
Nikollao | 19:70d40dac5ae0 | 236 | |
Nikollao | 19:70d40dac5ae0 | 237 | /** |
Nikollao | 5:ffa498d7071f | 238 | Create circle shape enemy |
Nikollao | 5:ffa498d7071f | 239 | */ |
Nikollao | 2:af5b5d42e835 | 240 | void enemyCircle(); |
Nikollao | 5:ffa498d7071f | 241 | |
Nikollao | 5:ffa498d7071f | 242 | /** |
Nikollao | 5:ffa498d7071f | 243 | creates the hero of the game |
Nikollao | 5:ffa498d7071f | 244 | */ |
Nikollao | 2:af5b5d42e835 | 245 | void hero(); |
Nikollao | 5:ffa498d7071f | 246 | |
Nikollao | 5:ffa498d7071f | 247 | /** |
Nikollao | 5:ffa498d7071f | 248 | Shows the right direction |
Nikollao | 5:ffa498d7071f | 249 | */ |
Nikollao | 2:af5b5d42e835 | 250 | void guidance(); |
Nikollao | 5:ffa498d7071f | 251 | |
Nikollao | 5:ffa498d7071f | 252 | /** |
Nikollao | 5:ffa498d7071f | 253 | Locates obstacles in the screen |
Nikollao | 5:ffa498d7071f | 254 | */ |
Nikollao | 2:af5b5d42e835 | 255 | void obstacles(); |
Nikollao | 5:ffa498d7071f | 256 | |
Nikollao | 5:ffa498d7071f | 257 | /** |
Nikollao | 5:ffa498d7071f | 258 | Gets enemies depending on the level |
Nikollao | 5:ffa498d7071f | 259 | */ |
Nikollao | 3:d2cc054e8605 | 260 | void enemies(); |
Nikollao | 5:ffa498d7071f | 261 | |
Nikollao | 5:ffa498d7071f | 262 | /** |
Nikollao | 20:59aa6189a47d | 263 | Implement Menu in the game and display on screen |
Nikollao | 5:ffa498d7071f | 264 | */ |
Nikollao | 20:59aa6189a47d | 265 | void menu(); |
Nikollao | 4:f31bdc212241 | 266 | |
Nikollao | 20:59aa6189a47d | 267 | /** |
Nikollao | 20:59aa6189a47d | 268 | Check for overlap between hero and enemies or obstacles |
Nikollao | 20:59aa6189a47d | 269 | */ |
Nikollao | 6:c11bb31a06b3 | 270 | void checkOverlap(); |
Nikollao | 6:c11bb31a06b3 | 271 | |
Nikollao | 5:ffa498d7071f | 272 | /** |
Nikollao | 5:ffa498d7071f | 273 | Check for intrersection |
Nikollao | 5:ffa498d7071f | 274 | @param i loops through x direction |
Nikollao | 5:ffa498d7071f | 275 | @param j loops through y direction |
Nikollao | 5:ffa498d7071f | 276 | @returns the number of pixels aroun the hero detected |
Nikollao | 5:ffa498d7071f | 277 | */ |
Nikollao | 5:ffa498d7071f | 278 | int intersection(int i, int j); |
Nikollao | 5:ffa498d7071f | 279 | |
Nikollao | 5:ffa498d7071f | 280 | |
Nikollao | 7:f31a4b4beb91 | 281 | //vars |
Nikollao | 7:f31a4b4beb91 | 282 | volatile int rectX; /*!< used to determine x-axis position of the rect enemy */ |
Nikollao | 7:f31a4b4beb91 | 283 | |
Nikollao | 7:f31a4b4beb91 | 284 | volatile int rectY ;/*!< used to determine y-axis position of the rect enemy */ |
Nikollao | 5:ffa498d7071f | 285 | |
Nikollao | 6:c11bb31a06b3 | 286 | volatile int circleX;/*!< used to determine x-axis position of the circular enemy */ |
Nikollao | 5:ffa498d7071f | 287 | |
Nikollao | 6:c11bb31a06b3 | 288 | volatile int circleY;/*!< used to determine y-axis position of the circular enemy */ |
Nikollao | 5:ffa498d7071f | 289 | |
Nikollao | 6:c11bb31a06b3 | 290 | volatile int heroX;/*!< used to move the hero along x-axis */ |
Nikollao | 5:ffa498d7071f | 291 | |
Nikollao | 6:c11bb31a06b3 | 292 | volatile int heroY;/*!< used to move the hero along y-axis */ |
Nikollao | 5:ffa498d7071f | 293 | |
Nikollao | 6:c11bb31a06b3 | 294 | volatile int level = 0; /*!< initiate the level difficulty of the game */ |
Nikollao | 2:af5b5d42e835 | 295 | |
Nikollao | 6:c11bb31a06b3 | 296 | volatile int g_timer_flag = 0; /*!< set timer flag in the isr, timer trigger interrupt */ |
Nikollao | 5:ffa498d7071f | 297 | |
Nikollao | 6:c11bb31a06b3 | 298 | volatile int g_game_timer_flag = 0; /*!< set timer flag in the isr, timer trigger interrupt */ |
Nikollao | 5:ffa498d7071f | 299 | |
Nikollao | 6:c11bb31a06b3 | 300 | volatile int g_sw2_flag = 0; /*!< set timer flag in the isr, event trigger interrupt */ |
Nikollao | 5:ffa498d7071f | 301 | |
Nikollao | 6:c11bb31a06b3 | 302 | volatile int g_sw3_flag = 0; /*!< set timer flag in the isr, event trigger interrupt */ |
Nikollao | 5:ffa498d7071f | 303 | |
Nikollao | 10:1d229362c134 | 304 | volatile int g_button_flag = 0; /*!< set flag in the isr, event trigger interrupt */ |
Nikollao | 10:1d229362c134 | 305 | |
Nikollao | 10:1d229362c134 | 306 | volatile int g_button1_flag = 0; /*!< set flag in the isr, event trigger interrupt */ |
Nikollao | 2:af5b5d42e835 | 307 | |
Nikollao | 6:c11bb31a06b3 | 308 | volatile int option = 0; /*!< select option in menu based on Joystick's movement */ |
Nikollao | 5:ffa498d7071f | 309 | |
Nikollao | 6:c11bb31a06b3 | 310 | volatile int play = 0; /*!< counts the number of plays */ |
Nikollao | 5:ffa498d7071f | 311 | |
Nikollao | 15:c7af2ea5f164 | 312 | volatile int tries = 3;/*!< counts the number of trials */ |
Nikollao | 4:f31bdc212241 | 313 | |
Nikollao | 6:c11bb31a06b3 | 314 | volatile int n;/*!< number of pixels overlapping */ |
Nikollao | 13:359d3aa66352 | 315 | |
Nikollao | 16:a6ca6858af24 | 316 | volatile float game_speed = 0.05; /*!< value is set to the ticker, allows user to select game speed */ |
Nikollao | 4:f31bdc212241 | 317 | |
Nikollao | 17:2d424db3975f | 318 | int fsm[4] = {7,6,4,0}; /*!< array of elements in the FSM, each element is the output of the counter */ |
Nikollao | 17:2d424db3975f | 319 | |
Nikollao | 17:2d424db3975f | 320 | int fsm_state = 0; /*!< variable is used to access the array of states and produce an output */ |
Nikollao | 17:2d424db3975f | 321 | |
Nikollao | 6:c11bb31a06b3 | 322 | int reset = 0; /*!< used to save current level of difficulty */ |
Nikollao | 4:f31bdc212241 | 323 | |
Nikollao | 8:606a488fa720 | 324 | int objectX = 0; /*!< used to move obstacles in the x-axis */ |
Nikollao | 7:f31a4b4beb91 | 325 | |
Nikollao | 8:606a488fa720 | 326 | int objectY = 20; /*!< used to move obstacles in the y-axis */ |
Nikollao | 8:606a488fa720 | 327 | |
Nikollao | 8:606a488fa720 | 328 | int state = 0; /*!< controls the direction of the objtacle */ |
Nikollao | 9:ce2d9c42edea | 329 | |
Nikollao | 9:ce2d9c42edea | 330 | int objectX1 = 58; /*!< used to move obstacles in the x-axis */ |
Nikollao | 10:1d229362c134 | 331 | |
Nikollao | 9:ce2d9c42edea | 332 | int state1 = 1; /*!< controls the direction of the objtacle */ |
Nikollao | 9:ce2d9c42edea | 333 | |
Nikollao | 16:a6ca6858af24 | 334 | //int menuY = 5; /*!< controls the position of the circle selector */ |
Nikollao | 16:a6ca6858af24 | 335 | |
Nikollao | 16:a6ca6858af24 | 336 | int speed = 1; /*!< controls the speed menu display */ |
Nikollao | 11:53caf3d944a9 | 337 | |
Nikollao | 16:a6ca6858af24 | 338 | bool normal=0; /*!< controls the lcd mode selection on menu */ |
Nikollao | 16:a6ca6858af24 | 339 | |
Nikollao | 16:a6ca6858af24 | 340 | bool sound = 0; /*!< determines if sound is on or off */ |
Nikollao | 7:f31a4b4beb91 | 341 | |
Nikollao | 18:5405ee7e243b | 342 | #endif |