Embedded Systems Project Mateusz Loboda 200843098
Dependencies: N5110 SRF02-Mateusz mbed
main.h@2:0dfa60f22f07, 2016-05-04 (annotated)
- Committer:
- el14ml
- Date:
- Wed May 04 22:45:02 2016 +0000
- Revision:
- 2:0dfa60f22f07
- Parent:
- 0:3403a3415306
- Child:
- 3:ee005c9f0348
header file doxygen
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el14ml | 0:3403a3415306 | 1 | /** |
el14ml | 0:3403a3415306 | 2 | @file main.h |
el14ml | 0:3403a3415306 | 3 | @brief ʜeader file declares functions and variables |
el14ml | 2:0dfa60f22f07 | 4 | @brief Reverse parking and motion detection tool - Embedded Systems Project |
el14ml | 2:0dfa60f22f07 | 5 | @brief Revision 1.0. |
el14ml | 0:3403a3415306 | 6 | @author Mateusz Loboda |
el14ml | 0:3403a3415306 | 7 | @Date 02/05/16 |
el14ml | 0:3403a3415306 | 8 | */ |
el14ml | 0:3403a3415306 | 9 | |
el14ml | 0:3403a3415306 | 10 | #ifndef MAIN_H |
el14ml | 0:3403a3415306 | 11 | #define MAIN_H |
el14ml | 0:3403a3415306 | 12 | #include "N5110.h" |
el14ml | 0:3403a3415306 | 13 | #include "SRF02.h" |
el14ml | 0:3403a3415306 | 14 | |
el14ml | 2:0dfa60f22f07 | 15 | /** |
el14ml | 2:0dfa60f22f07 | 16 | @namespace lcd |
el14ml | 2:0dfa60f22f07 | 17 | @brief object of the N5110 class |
el14ml | 2:0dfa60f22f07 | 18 | */ |
el14ml | 2:0dfa60f22f07 | 19 | N5110 lcd(PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3); |
el14ml | 0:3403a3415306 | 20 | |
el14ml | 2:0dfa60f22f07 | 21 | ////////////////// |
el14ml | 0:3403a3415306 | 22 | SRF02 sensor(I2C_SDA,I2C_SCL); |
el14ml | 0:3403a3415306 | 23 | |
el14ml | 2:0dfa60f22f07 | 24 | /** |
el14ml | 2:0dfa60f22f07 | 25 | @namespace r_led |
el14ml | 2:0dfa60f22f07 | 26 | @brief output for status of red LED |
el14ml | 2:0dfa60f22f07 | 27 | */ |
el14ml | 0:3403a3415306 | 28 | DigitalOut r_led(LED_RED); |
el14ml | 2:0dfa60f22f07 | 29 | |
el14ml | 2:0dfa60f22f07 | 30 | /** |
el14ml | 2:0dfa60f22f07 | 31 | @namespace g_led |
el14ml | 2:0dfa60f22f07 | 32 | @brief output for status of green LED |
el14ml | 2:0dfa60f22f07 | 33 | */ |
el14ml | 0:3403a3415306 | 34 | DigitalOut g_led(LED_GREEN); |
el14ml | 2:0dfa60f22f07 | 35 | |
el14ml | 2:0dfa60f22f07 | 36 | /** |
el14ml | 2:0dfa60f22f07 | 37 | @namespace b_led |
el14ml | 2:0dfa60f22f07 | 38 | @brief output for status of blue LED |
el14ml | 2:0dfa60f22f07 | 39 | */ |
el14ml | 0:3403a3415306 | 40 | DigitalOut b_led(LED_BLUE); |
el14ml | 2:0dfa60f22f07 | 41 | |
el14ml | 2:0dfa60f22f07 | 42 | /** |
el14ml | 2:0dfa60f22f07 | 43 | @namespace button 1 |
el14ml | 2:0dfa60f22f07 | 44 | @brief Interrupt executes an event triggered task |
el14ml | 2:0dfa60f22f07 | 45 | */ |
el14ml | 0:3403a3415306 | 46 | InterruptIn button1(PTB9); |
el14ml | 0:3403a3415306 | 47 | |
el14ml | 2:0dfa60f22f07 | 48 | /** |
el14ml | 2:0dfa60f22f07 | 49 | @namespace button 2 |
el14ml | 2:0dfa60f22f07 | 50 | @brief Interrupt executes an event triggered task |
el14ml | 2:0dfa60f22f07 | 51 | */ |
el14ml | 2:0dfa60f22f07 | 52 | InterruptIn button2(PTB18); |
el14ml | 0:3403a3415306 | 53 | |
el14ml | 2:0dfa60f22f07 | 54 | /** |
el14ml | 2:0dfa60f22f07 | 55 | @namespace buzzer |
el14ml | 2:0dfa60f22f07 | 56 | @brief use PWM pin to control the volume of the buzzer, duty cycle and period |
el14ml | 2:0dfa60f22f07 | 57 | */ |
el14ml | 2:0dfa60f22f07 | 58 | PwmOut buzzer(PTA2); |
el14ml | 2:0dfa60f22f07 | 59 | |
el14ml | 2:0dfa60f22f07 | 60 | /** |
el14ml | 2:0dfa60f22f07 | 61 | @namespace pot |
el14ml | 2:0dfa60f22f07 | 62 | @brief read value of the potentiometer from the potentiometer position |
el14ml | 2:0dfa60f22f07 | 63 | */ |
el14ml | 2:0dfa60f22f07 | 64 | AnalogIn rate(PTB10); |
el14ml | 2:0dfa60f22f07 | 65 | |
el14ml | 2:0dfa60f22f07 | 66 | /** |
el14ml | 2:0dfa60f22f07 | 67 | @namespace myled |
el14ml | 2:0dfa60f22f07 | 68 | @brief Output for status of red LED, used as auditory alert |
el14ml | 2:0dfa60f22f07 | 69 | */ |
el14ml | 2:0dfa60f22f07 | 70 | DigitalOut myled(PTC2); |
el14ml | 2:0dfa60f22f07 | 71 | |
el14ml | 2:0dfa60f22f07 | 72 | /** |
el14ml | 2:0dfa60f22f07 | 73 | @namespace timer |
el14ml | 2:0dfa60f22f07 | 74 | @brief Periodic interrupt executes a time triggered task |
el14ml | 2:0dfa60f22f07 | 75 | */ |
el14ml | 2:0dfa60f22f07 | 76 | Ticker ticker; |
el14ml | 2:0dfa60f22f07 | 77 | |
el14ml | 2:0dfa60f22f07 | 78 | /** |
el14ml | 2:0dfa60f22f07 | 79 | @namespace timeout |
el14ml | 2:0dfa60f22f07 | 80 | @brief Interrupt used to call a function after a specified amount of time |
el14ml | 2:0dfa60f22f07 | 81 | */ |
el14ml | 2:0dfa60f22f07 | 82 | Timeout out; |
el14ml | 2:0dfa60f22f07 | 83 | |
el14ml | 2:0dfa60f22f07 | 84 | //variables |
el14ml | 2:0dfa60f22f07 | 85 | volatile int g_button1_flag = 0; /*!< Set flag in ISR for button 1, event triggered interrupt */ |
el14ml | 2:0dfa60f22f07 | 86 | volatile int g_button2_flag = 0; /*!< Set flag in ISR for button 2, event triggered interrupt */ |
el14ml | 2:0dfa60f22f07 | 87 | volatile int g_ticker_flag = 0; /*!< Set ticker flag in ISR , time triggered interrupt */ |
el14ml | 0:3403a3415306 | 88 | |
el14ml | 0:3403a3415306 | 89 | |
el14ml | 2:0dfa60f22f07 | 90 | /** |
el14ml | 2:0dfa60f22f07 | 91 | The main function where the code is executed |
el14ml | 2:0dfa60f22f07 | 92 | */ |
el14ml | 2:0dfa60f22f07 | 93 | //int main(); |
el14ml | 2:0dfa60f22f07 | 94 | |
el14ml | 2:0dfa60f22f07 | 95 | /** |
el14ml | 2:0dfa60f22f07 | 96 | setting up flag to 1 |
el14ml | 2:0dfa60f22f07 | 97 | */ |
el14ml | 2:0dfa60f22f07 | 98 | void units(); |
el14ml | 2:0dfa60f22f07 | 99 | |
el14ml | 2:0dfa60f22f07 | 100 | /** |
el14ml | 2:0dfa60f22f07 | 101 | setting up flag to 1 |
el14ml | 2:0dfa60f22f07 | 102 | */ |
el14ml | 2:0dfa60f22f07 | 103 | void mode(); |
el14ml | 2:0dfa60f22f07 | 104 | |
el14ml | 2:0dfa60f22f07 | 105 | /** |
el14ml | 2:0dfa60f22f07 | 106 | setting up flag to 1 |
el14ml | 2:0dfa60f22f07 | 107 | */ |
el14ml | 2:0dfa60f22f07 | 108 | void timeout_isr(); |
el14ml | 2:0dfa60f22f07 | 109 | |
el14ml | 2:0dfa60f22f07 | 110 | /** |
el14ml | 2:0dfa60f22f07 | 111 | setting up flag to 1 |
el14ml | 2:0dfa60f22f07 | 112 | */ |
el14ml | 2:0dfa60f22f07 | 113 | void ticker_isr(); |
el14ml | 2:0dfa60f22f07 | 114 | |
el14ml | 2:0dfa60f22f07 | 115 | /** |
el14ml | 2:0dfa60f22f07 | 116 | setting up the buttons and on board LEDs |
el14ml | 2:0dfa60f22f07 | 117 | */ |
el14ml | 2:0dfa60f22f07 | 118 | void init_K64F(); |
el14ml | 2:0dfa60f22f07 | 119 | |
el14ml | 2:0dfa60f22f07 | 120 | /** |
el14ml | 2:0dfa60f22f07 | 121 | inital screen printed |
el14ml | 2:0dfa60f22f07 | 122 | */ |
el14ml | 2:0dfa60f22f07 | 123 | void initialScreen(); |
el14ml | 2:0dfa60f22f07 | 124 | |
el14ml | 2:0dfa60f22f07 | 125 | /** |
el14ml | 2:0dfa60f22f07 | 126 | initialize graph array for distance points |
el14ml | 2:0dfa60f22f07 | 127 | */ |
el14ml | 2:0dfa60f22f07 | 128 | void initialArray(); |
el14ml | 2:0dfa60f22f07 | 129 | |
el14ml | 2:0dfa60f22f07 | 130 | /** |
el14ml | 2:0dfa60f22f07 | 131 | calculate the average distance from a set number of consecutive readings |
el14ml | 2:0dfa60f22f07 | 132 | */ |
el14ml | 2:0dfa60f22f07 | 133 | void get_averageDistance(); |
el14ml | 2:0dfa60f22f07 | 134 | |
el14ml | 2:0dfa60f22f07 | 135 | /** |
el14ml | 2:0dfa60f22f07 | 136 | Set visual and auditory alerts |
el14ml | 2:0dfa60f22f07 | 137 | */ |
el14ml | 2:0dfa60f22f07 | 138 | void redLedIndicator(); |
el14ml | 2:0dfa60f22f07 | 139 | |
el14ml | 2:0dfa60f22f07 | 140 | /** |
el14ml | 2:0dfa60f22f07 | 141 | Creates rectangular bars |
el14ml | 2:0dfa60f22f07 | 142 | */ |
el14ml | 2:0dfa60f22f07 | 143 | void drawDistanceBars(); |
el14ml | 2:0dfa60f22f07 | 144 | |
el14ml | 2:0dfa60f22f07 | 145 | /** |
el14ml | 2:0dfa60f22f07 | 146 | Shifts array elements by one |
el14ml | 2:0dfa60f22f07 | 147 | */ |
el14ml | 2:0dfa60f22f07 | 148 | void moveArrayElements(); |
el14ml | 2:0dfa60f22f07 | 149 | |
el14ml | 2:0dfa60f22f07 | 150 | /** |
el14ml | 2:0dfa60f22f07 | 151 | assigning float distance to first element of graph matrix |
el14ml | 2:0dfa60f22f07 | 152 | */ |
el14ml | 2:0dfa60f22f07 | 153 | void adjacentArrayElements(); |
el14ml | 2:0dfa60f22f07 | 154 | |
el14ml | 2:0dfa60f22f07 | 155 | /** |
el14ml | 2:0dfa60f22f07 | 156 | plots the x and y axes |
el14ml | 2:0dfa60f22f07 | 157 | */ |
el14ml | 2:0dfa60f22f07 | 158 | void plotAxes(); |
el14ml | 2:0dfa60f22f07 | 159 | |
el14ml | 2:0dfa60f22f07 | 160 | /** |
el14ml | 2:0dfa60f22f07 | 161 | converts float distance to integer pixel and plots the point |
el14ml | 2:0dfa60f22f07 | 162 | */ |
el14ml | 2:0dfa60f22f07 | 163 | void plotDistancePoint(); |
el14ml | 2:0dfa60f22f07 | 164 | |
el14ml | 2:0dfa60f22f07 | 165 | //void modeTwo(); |
el14ml | 0:3403a3415306 | 166 | |
el14ml | 0:3403a3415306 | 167 | float buzzerPeriod; |
el14ml | 0:3403a3415306 | 168 | float delay; |
el14ml | 0:3403a3415306 | 169 | float averageDistance; |
el14ml | 0:3403a3415306 | 170 | float graphArray[82]; |
el14ml | 0:3403a3415306 | 171 | |
el14ml | 0:3403a3415306 | 172 | #endif |