########################################################################## Project - Maze Solving Bot ######################################################################################

-------------------------------------------------- Files included for this project (besides this README.txt file)--------------------------------------------------------------------------
1. tm4c123gh6pm.lds
2. tm4c123gh6pm_startup_ccs_gcc.c
3. main.c (Contains main source code)
4. ADC_PWM.c - Contains code for configuring ADC and PWM
5. ADC_PWM.h
6. core_logic.c - Contains core logic for solving the maze
7. core_logic.h
8. GPIO.c - Configures code for configuring GPIO
9. GPIO.h
10. ultrasonic_sensor.c - Contains code for configuring ultrasonic sensor
11. ultrasonic_sensor.h
12. UART_init.c - Contains code for configuring UART
13. UART_init.h 

-------------------------------------------------------------------------------------- Pin Mapping------------------------------------------------------------------------------------------
1.	Motor Driver
	a.	For Right Motor :
		i.	PE5 - ENA
		ii.	PA2 - IN1
		iii.	PA3 - IN2
	b.	For Left Motor:
		i.	PE4 - ENB
		ii.	PA5 - IN3
		iii.	PA6 - IN4
	c.	Note: Same PWM_CMPA is used for both the PWMs and so motors on both the directions of the car move with same speed.
2.	Ultrasonic Sensor
	a.	PA4 - Trigger Signal for front Ultrasonic sensor
	b.	PB6 - Echo Pulse for front Ultrasonic sensor
		i.	Used along with Timer 0A
	c.	PB4 - Trigger Signal for left Ultrasonic sensor
	d.	PF2 -  Echo Pulse for left Ultrasonic sensor
	i.	Used along with Timer 1A
	e.	PB3 - Trigger Signal for right Ultrasonic sensor
	f.	PB2 - Echo Pulse for right Ultrasonic sensor
		i.	Used along with Timer 3A
 
Note:  
1.	Timer 2A used for delay of 1 microsecond and SYSTICK configured for the delay of 1 ms.
2.	Timer1A and Timer 3A are used in input capture mode
	a.	Whenever an input event is detected on a respective timer GPIO pin, the content of the timer counter saved into GPTMTAR register and counter keeps counting. 
	b.	Bit2 of GPTMRIS register becomes one, whenever an edge is detected on a GPIO pin. GPTMRIS register bit2 automatically sets high based on edge settings such as rising edge, falling edge or both. 
