Embedded Systems Project Mateusz Loboda 200843098

Dependencies:   N5110 SRF02-Mateusz mbed

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?

UserRevisionLine numberNew 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