From ecca9af3a3e8bbcf540acab99f82b3a1603aff9e Mon Sep 17 00:00:00 2001
From: kerem <kerem.yollu@gmail.com>
Date: Tue, 28 Feb 2023 17:43:29 +0100
Subject: [PATCH] README for driver written and on looking how it presents
 itself

---
 CMakeLists.txt    |  2 +-
 drivers/README.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 97 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31b79d1..2fd7b62 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,7 +42,7 @@ set(DOXYGEN_WORKING_DIR ${CMAKE_SOURCE_DIR}/env/doc)
 # INCLUDES
 ####################################################################################################
 # Adding human readable color references for cmake
-include(${CMAKE_CORE_DIR}/colors.cmake)				
+include(${CMAKE_CORE_DIR}/colors.cmake)			
 
 # All the library and submodule funtions and definitions are written here
 include(${CMAKE_CORE_DIR}/cmakeCore.cmake)				
diff --git a/drivers/README.md b/drivers/README.md
index e69de29..b44e270 100644
--- a/drivers/README.md
+++ b/drivers/README.md
@@ -0,0 +1,96 @@
+# Drivers
+## Description
+Drivers are the higher level of code prowided by *KED*. It come on top of the [Peripheras](https://git.keydev.me/kerem/KED/src/branch/master/peripherals) and alows the usage of comercially awailable IC's or moludes.
+
+---
+## Please follow this guide to find out about the :  
+- [Structure](#Structure)
+- [Usage](#Usage)
+- [Creation](#creation)
+- [Modification](#modification)
+- [Credits](#credits)
+- [License](#license)
+---
+
+## Structure
+##### The __driver__ folder has multiple elements inside :
+ + CMakeLists.txt
+	+ where the DRIVERS_LIST is defined
+ + Folders named after the driver that they respresent. Inside you will find:
+	+ Source file of the driver
+	+ Header file of the driver
+ + This Readme file
+---
+
+## Usage
+In the *CMakeLists.txt* you will find the decalarion of __DRIVERS_LIST__ list which contains the dirvers that are to be compiled.
+The *name* of the declared *driver* also defines the name of the driver's *folder*, *souce* file and *header* file.
+Once the driver is implemented correctly you can call the header of the driver from any soure of header file. 
+> exmaple for *ssd1306_i2c*
+~~~ C
+#include "ssd1306_i2c.h"
+~~~
+
+CMake will the automatically find the driver, compile it and implement it to the main projet as a submodule. 
+
+---
+## Creation
+### Let's implement a driver named *ssd1306_i2c*
+#### First let's add *ssd1306_i2c* to the __DRIVERS_LIST__. 
+Open *CMakeLists.txt* with your favorite *text editor* and modifiy the line wehre __DRIVERS_LIST__ is defined.
+In which order the drivers are added to the list has no importance. 
+
+> Before adding *ssd1306_i2c*
+
+~~~ CMAKE 
+set(DRIVERS_LIST lcd_oled max7219 max31865) 
+~~~
+
+> After adding *ssd1306_i2c* the declaration of __DRIVERS_LIST__ should look like this
+
+~~~ CMAKE 
+set(DRIVERS_LIST lcd_oled max7219 max31865 ssd1306_i2c) 
+~~~
+
+#### Than we can create a folder with the same name
+~~~ bash 
+mkdir ssd1306_i2c
+~~~
+
+#### Inside the newly created folder add the *source* and *header* file with the same name as the driver
+In our case that means __ssd1306_i2c.c__ and __ssd1306_i2c.h__
+
+~~~ bash 
+touch ssd1306_i2c.c ssd1306_i2c.h
+~~~
+
+#### The final structure should look like this
+As you can see this folder also contains the datashhed for this driver. If you have any additional documentation like a datasheet or calculation sheet, feel free to add them here.
+
+~~~ bash
+└── ssd1306_i2c
+    ├── ssd1306_i2c.c
+    ├── ssd1306_i2c.h
+    └── SSD1306.pdf
+~~~
+---
+## Modification
+You can modify each driver to your convinience but it can't be pushed again so please be careful during GIT transactions.
+You can also remove any driver from the complation by simply removing his declaration from the __DRIVERS_LIST__
+> Like so : 
+set(DRIVERS_LIST lcd_oled max7219 max31865 ~~ssd1306_i2c~~) 
+## How to Contribute
+Do you want to become a contibutor ? :
+How is Ked organised :
+Rules to write a Driver :
+
+## Credits
+
+Edwin Koch
+Kerem Yollu
+
+## License
+
+The last section of a high-quality README file is the license. This lets other developers know what they can and cannot do with your project. If you need help choosing a license, refer to [https://choosealicense.com/](https://choosealicense.com/).
+
+---