My ELEC2645 project. Nikollao Sulollari. 200804685
Dependencies: N5110 SoftPWM mbed
Fork of Treasure_Hunt by
main.h@5:ffa498d7071f, 2016-03-26 (annotated)
- Committer:
- Nikollao
- Date:
- Sat Mar 26 14:41:40 2016 +0000
- Revision:
- 5:ffa498d7071f
- Parent:
- 4:f31bdc212241
- Child:
- 6:c11bb31a06b3
Oxygen added to the code, working on intersection!
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 | 5:ffa498d7071f | 13 | |
Nikollao | 5:ffa498d7071f | 14 | |
Nikollao | 5:ffa498d7071f | 15 | /** |
Nikollao | 5:ffa498d7071f | 16 | @nameSpace led |
Nikollao | 5:ffa498d7071f | 17 | @brief GPO output for status of LED |
Nikollao | 5:ffa498d7071f | 18 | */ |
Nikollao | 2:af5b5d42e835 | 19 | DigitalOut r_led(LED_RED); |
Nikollao | 2:af5b5d42e835 | 20 | DigitalOut g_led(LED_GREEN); |
Nikollao | 2:af5b5d42e835 | 21 | DigitalOut b_led(LED_BLUE); |
Nikollao | 2:af5b5d42e835 | 22 | |
Nikollao | 2:af5b5d42e835 | 23 | // K64F on-board switches |
Nikollao | 2:af5b5d42e835 | 24 | InterruptIn sw2(SW2); |
Nikollao | 2:af5b5d42e835 | 25 | InterruptIn sw3(SW3); |
Nikollao | 2:af5b5d42e835 | 26 | |
Nikollao | 2:af5b5d42e835 | 27 | InterruptIn button(PTB2); |
Nikollao | 2:af5b5d42e835 | 28 | AnalogIn xPot(PTB3); |
Nikollao | 2:af5b5d42e835 | 29 | AnalogIn yPot(PTB10); |
Nikollao | 2:af5b5d42e835 | 30 | PwmOut speaker(PTC11); |
Nikollao | 2:af5b5d42e835 | 31 | |
Nikollao | 5:ffa498d7071f | 32 | /** |
Nikollao | 5:ffa498d7071f | 33 | Displays an error message |
Nikollao | 5:ffa498d7071f | 34 | */ |
Nikollao | 2:af5b5d42e835 | 35 | void error(); |
Nikollao | 5:ffa498d7071f | 36 | |
Nikollao | 5:ffa498d7071f | 37 | /** |
Nikollao | 5:ffa498d7071f | 38 | set-up serial port |
Nikollao | 5:ffa498d7071f | 39 | */ |
Nikollao | 2:af5b5d42e835 | 40 | void init_serial(); |
Nikollao | 5:ffa498d7071f | 41 | |
Nikollao | 5:ffa498d7071f | 42 | /** |
Nikollao | 5:ffa498d7071f | 43 | set-up the on-board LEDs and switches |
Nikollao | 5:ffa498d7071f | 44 | */ |
Nikollao | 2:af5b5d42e835 | 45 | void init_K64F(); |
Nikollao | 5:ffa498d7071f | 46 | |
Nikollao | 5:ffa498d7071f | 47 | /** |
Nikollao | 5:ffa498d7071f | 48 | Set-up random variables and game menu |
Nikollao | 5:ffa498d7071f | 49 | */ |
Nikollao | 2:af5b5d42e835 | 50 | void init_game(); |
Nikollao | 5:ffa498d7071f | 51 | |
Nikollao | 5:ffa498d7071f | 52 | /** |
Nikollao | 5:ffa498d7071f | 53 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 54 | */ |
Nikollao | 5:ffa498d7071f | 55 | |
Nikollao | 5:ffa498d7071f | 56 | /** |
Nikollao | 5:ffa498d7071f | 57 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 58 | */ |
Nikollao | 2:af5b5d42e835 | 59 | void timer_isr(); |
Nikollao | 5:ffa498d7071f | 60 | |
Nikollao | 5:ffa498d7071f | 61 | /** |
Nikollao | 5:ffa498d7071f | 62 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 63 | */ |
Nikollao | 5:ffa498d7071f | 64 | |
Nikollao | 5:ffa498d7071f | 65 | /** |
Nikollao | 5:ffa498d7071f | 66 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 67 | */ |
Nikollao | 2:af5b5d42e835 | 68 | void game_timer_isr(); |
Nikollao | 5:ffa498d7071f | 69 | |
Nikollao | 5:ffa498d7071f | 70 | /** |
Nikollao | 5:ffa498d7071f | 71 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 72 | */ |
Nikollao | 2:af5b5d42e835 | 73 | void sw2_isr(); |
Nikollao | 5:ffa498d7071f | 74 | |
Nikollao | 5:ffa498d7071f | 75 | /** |
Nikollao | 5:ffa498d7071f | 76 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 77 | */ |
Nikollao | 2:af5b5d42e835 | 78 | void sw3_isr(); |
Nikollao | 5:ffa498d7071f | 79 | |
Nikollao | 5:ffa498d7071f | 80 | /** |
Nikollao | 5:ffa498d7071f | 81 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 82 | */ |
Nikollao | 2:af5b5d42e835 | 83 | void button_isr(); |
Nikollao | 5:ffa498d7071f | 84 | |
Nikollao | 5:ffa498d7071f | 85 | /** |
Nikollao | 5:ffa498d7071f | 86 | Set-up flag to 1 |
Nikollao | 5:ffa498d7071f | 87 | */ |
Nikollao | 2:af5b5d42e835 | 88 | void timeout_isr(); |
Nikollao | 2:af5b5d42e835 | 89 | |
Nikollao | 5:ffa498d7071f | 90 | /** |
Nikollao | 5:ffa498d7071f | 91 | Set current position to default position of Joystick |
Nikollao | 5:ffa498d7071f | 92 | */ |
Nikollao | 2:af5b5d42e835 | 93 | void calibrateJoystick(); |
Nikollao | 5:ffa498d7071f | 94 | |
Nikollao | 5:ffa498d7071f | 95 | /** |
Nikollao | 5:ffa498d7071f | 96 | Update the values of the joystick to get current position |
Nikollao | 5:ffa498d7071f | 97 | */ |
Nikollao | 2:af5b5d42e835 | 98 | void updateJoystick(); |
Nikollao | 2:af5b5d42e835 | 99 | |
Nikollao | 5:ffa498d7071f | 100 | /** |
Nikollao | 5:ffa498d7071f | 101 | Create an enemy rectangular shape |
Nikollao | 5:ffa498d7071f | 102 | */ |
Nikollao | 2:af5b5d42e835 | 103 | void enemyRect(); |
Nikollao | 5:ffa498d7071f | 104 | |
Nikollao | 5:ffa498d7071f | 105 | /** |
Nikollao | 5:ffa498d7071f | 106 | Create circle shape enemy |
Nikollao | 5:ffa498d7071f | 107 | */ |
Nikollao | 2:af5b5d42e835 | 108 | void enemyCircle(); |
Nikollao | 5:ffa498d7071f | 109 | |
Nikollao | 5:ffa498d7071f | 110 | /** |
Nikollao | 5:ffa498d7071f | 111 | creates the hero of the game |
Nikollao | 5:ffa498d7071f | 112 | */ |
Nikollao | 2:af5b5d42e835 | 113 | void hero(); |
Nikollao | 5:ffa498d7071f | 114 | |
Nikollao | 5:ffa498d7071f | 115 | /** |
Nikollao | 5:ffa498d7071f | 116 | Shows the right direction |
Nikollao | 5:ffa498d7071f | 117 | */ |
Nikollao | 2:af5b5d42e835 | 118 | void guidance(); |
Nikollao | 5:ffa498d7071f | 119 | |
Nikollao | 5:ffa498d7071f | 120 | /** |
Nikollao | 5:ffa498d7071f | 121 | Locates obstacles in the screen |
Nikollao | 5:ffa498d7071f | 122 | */ |
Nikollao | 2:af5b5d42e835 | 123 | void obstacles(); |
Nikollao | 5:ffa498d7071f | 124 | |
Nikollao | 5:ffa498d7071f | 125 | /** |
Nikollao | 5:ffa498d7071f | 126 | Gets enemies depending on the level |
Nikollao | 5:ffa498d7071f | 127 | */ |
Nikollao | 3:d2cc054e8605 | 128 | void enemies(); |
Nikollao | 5:ffa498d7071f | 129 | |
Nikollao | 5:ffa498d7071f | 130 | /** |
Nikollao | 5:ffa498d7071f | 131 | Get s vslue of the .y position, control menu |
Nikollao | 5:ffa498d7071f | 132 | */ |
Nikollao | 2:af5b5d42e835 | 133 | int menu(); |
Nikollao | 4:f31bdc212241 | 134 | |
Nikollao | 5:ffa498d7071f | 135 | /** |
Nikollao | 5:ffa498d7071f | 136 | Check for intrersection |
Nikollao | 5:ffa498d7071f | 137 | @param i loops through x direction |
Nikollao | 5:ffa498d7071f | 138 | @param j loops through y direction |
Nikollao | 5:ffa498d7071f | 139 | @returns the number of pixels aroun the hero detected |
Nikollao | 5:ffa498d7071f | 140 | */ |
Nikollao | 5:ffa498d7071f | 141 | int intersection(int i, int j); |
Nikollao | 5:ffa498d7071f | 142 | |
Nikollao | 5:ffa498d7071f | 143 | volatile int rectY; /*! <set the Y coordinate of the rectangular enemy> */ |
Nikollao | 5:ffa498d7071f | 144 | |
Nikollao | 5:ffa498d7071f | 145 | volatile int rectX ;/*! <set the X coordinate of the rectangular enemy> */ |
Nikollao | 5:ffa498d7071f | 146 | |
Nikollao | 5:ffa498d7071f | 147 | volatile int circleX;/*! <set the Y coordinate of the circular enemy> */ |
Nikollao | 5:ffa498d7071f | 148 | |
Nikollao | 5:ffa498d7071f | 149 | volatile int circleY;/*! <set the X coordinate of the circular enemy> */ |
Nikollao | 5:ffa498d7071f | 150 | |
Nikollao | 5:ffa498d7071f | 151 | volatile int heroX;/*! <set the X coordinate of the hero> */ |
Nikollao | 5:ffa498d7071f | 152 | |
Nikollao | 5:ffa498d7071f | 153 | volatile int heroY;/*! <set the Y coordinate of the hero> */ |
Nikollao | 5:ffa498d7071f | 154 | |
Nikollao | 5:ffa498d7071f | 155 | volatile int level = 0; /*! <set level of the game> */ |
Nikollao | 2:af5b5d42e835 | 156 | |
Nikollao | 5:ffa498d7071f | 157 | volatile int g_timer_flag = 0; /*! <set timer flag in the isr, timer trigger interrupt> */ |
Nikollao | 5:ffa498d7071f | 158 | |
Nikollao | 5:ffa498d7071f | 159 | volatile int g_game_timer_flag = 0; /*! <set timer flag in the isr, timer trigger interrupt> */ |
Nikollao | 5:ffa498d7071f | 160 | |
Nikollao | 5:ffa498d7071f | 161 | volatile int g_sw2_flag = 0; /*! <set timer flag in the isr, event trigger interrupt> */ |
Nikollao | 5:ffa498d7071f | 162 | |
Nikollao | 5:ffa498d7071f | 163 | volatile int g_sw3_flag = 0; /*! <set timer flag in the isr, event trigger interrupt> */ |
Nikollao | 5:ffa498d7071f | 164 | |
Nikollao | 5:ffa498d7071f | 165 | volatile int g_button_flag = 0; /*! <set timer flag in the isr, event trigger interrupt> */ |
Nikollao | 2:af5b5d42e835 | 166 | |
Nikollao | 5:ffa498d7071f | 167 | volatile int option = 0; /*! <set option to generate menut> */ |
Nikollao | 5:ffa498d7071f | 168 | |
Nikollao | 5:ffa498d7071f | 169 | volatile int play = 0; /*! <used as a variable to check if its the first try*/ |
Nikollao | 5:ffa498d7071f | 170 | |
Nikollao | 5:ffa498d7071f | 171 | volatile int tries = 0;/*! <saves number of trials> */ |
Nikollao | 4:f31bdc212241 | 172 | |
Nikollao | 5:ffa498d7071f | 173 | int reset = 0; /*! <updates level of the game> */ |
Nikollao | 4:f31bdc212241 | 174 | |
Nikollao | 5:ffa498d7071f | 175 | int check[10][10];/*! <array used to check for intersection> */ |
Nikollao | 4:f31bdc212241 | 176 | |
Nikollao | 5:ffa498d7071f | 177 | #endif |
Nikollao | 5:ffa498d7071f | 178 |