diff --git a/esr24_g10_radar_scanner/main.c b/esr24_g10_radar_scanner/main.c
index 7eb9953da979ebfa8a0a614531d443c76ef54549..64e9262c7180184edf69cd4e1381bda41c604d0e 100644
--- a/esr24_g10_radar_scanner/main.c
+++ b/esr24_g10_radar_scanner/main.c
@@ -2,7 +2,14 @@
  * @file main.c
  * @brief Dies ist eine Beschreibung der main.c Datei.
  *
- * Detaillierte Beschreibung der Datei.
+ * Diese Datei enthält die Hauptfunktion und die Initialisierungsroutinen für das System.
+ * Das System verwendet einen MSP430FR2355-Mikrocontroller, um verschiedene Hardware-Komponenten
+ * zu steuern, einschließlich eines Servos SG90, eines Ultraschallsensor HC-SR04 und eines LC-Displays HD44780.
+ *
+ * @authors
+ * - Alexander Görlitz
+ * - Aaron Kaipf
+ * - Christopher Seitz
  */
 
 /* --COPYRIGHT--,BSD
@@ -35,58 +42,17 @@
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * --/COPYRIGHT--*/
-//******************************************************************************
-// Software Trim on 1MHz DCO
-//
-// This example uses the following peripherals and I/O signals.  You must
-// review these and change as needed for your own board:
-// - CS module
-// - GPIO Port peripheral
-//
-// This example uses the following interrupt handlers.  To use this example
-// in your own application you must add these interrupt handlers to your
-// vector table.
-//
-//   TI sample project cs_ex1_DCO1MHzSWTrim
-//   Modified by S. Steddin
-//   2020-06-22
-//******************************************************************************
+ * --/COPYRIGHT--
+ */
+
 /*
- * Version 0.1
- *
- * Zweckbestimmung:
- * Demonstration, wie der Ultraschallsensor SR04 zur Messung eines Abstandes
- * über das Launchpad angesteuert werden kann.
+ * Version 1.0.0
  *
  * Bestimmungsgemäßer Gebrauch:
- * 1. Ultraschallsensor gemäß Verdrahtungsplan mit dem Launchpad verbinden.
- *    Der Sensor soll mit 5V versorgt werden; das an das Launchpad gesendete
- *    ECHO-Signal muss daher über einen Spannungsteiler mit dem CCIA Pin verbunden
- *    verbunden werden, damit die maximal zulässigen 3,3V am DIO-Pin nicht über-
- *    schritten werden.
- * 2. Launchpad über USB-Buchse mit Spannung versorgen
- * 3. Sensor auf Objekt ausrichten, zu dem der Abstand gemessen werden soll
- * 4. Über Breakpoint den errechneten Abstandswert auslesen.
- *
- *
- * Funktionale Anforderungen:
- * - Es soll der gesamte mögliche Messbereich des Sensors ausgenützt werden
- * - Während der Laufzeit des US-Bursts soll die rote LED leuchten
- * - Messwiederholrate 10Hz
- *
- * Nicht funktionale Anforderungen:
- * - SMCLK: 1 MHz kalibriert
- * - Timerclock 500 kHz
- *
- * Iterationsplan:
- * - 0.1: clocksystem SMCLK 1 MHz + Definition des us_sensor API
- *        Version liefert noch keine Ergebnisse; nur das Rohgerüst
- * - 0.2: Messwert wird über debugger ausgewertet
- * - 0.3: Messwertausgabe über Backchannel UART
- * - 0.4: Messwertausgabe über TI GUI-Monitor
+ * 1. Launchpad über USB-Buchse mit Spannung versorgen
  *
  * Ultraschallsensor Verdrahtung:
+ *
  *                 MSP430FR2355                                 5V---|
  *             -----------------                                 ----|-------
  *         /|\|                 |                               |
@@ -100,55 +66,36 @@
  *            |                 |                       |           GND
  *                                                     GND
  *
- *
  * LCD und I2C Verdrahtung:
- *                MSP430FR2355     4k7  4k7     PCF8574
- *                    master        |    |
- *              -----------------   |    |
- *            -|XIN  P1.2/UCB0SDA|<-|----+->| SDA
- *             |                 |  |       |
- *            -|XOUT             |  |       |
- *             |     P1.3/UCB0SCL|<-+------>|SCL
+ *                MSP430FR2355          PCF8574T
+ *                    master
+ *              -----------------
+ *            -|XIN  P1.2/UCB0SDA|<-------->| SDA
+ *             |                 |          |
+ *            -|XOUT             |          |
+ *             |     P1.3/UCB0SCL|<-------->|SCL
  *    LEDred<--|P1.0             |          |
- *                                   3,3V-->| Vcc
+ *                                   5V-->| Vcc
  *
- *    Hinweis zu den pull-up Widerständen:
- *    Prüfen, ob die Widerstände bereits auf dem PCF8574 board installiert sind (Standard).
- *    Ggf. müssen diese entfernt werden, wenn das Display nicht mit 3,3V, sondern mit 5V
- *    betrieben werden soll. Anstelle der entfernten SMD-Widerstände müssen dann externe
- *    pull-up Widerstände installiert werden, die nicht mit Vcc des Displays (5V), sondern
- *    mit Vcc des Launchpads (3,3V) verbunden sind. Für die Steuerung des I2C Buses sollten
- *    in diesem Fall 3,3 V knapp ausreichend sein (> 0,7*Vcc), jedoch wird das Display hierbei
- *    knapp außerhalb der Spezifikation betrieben.
+ *  MSP430FR235x Demo - Timer1_B3, PWM TB1.1-2, Up Mode, DCO SMCLK
  *
  *
- *//*******************************************************************************
-//  MSP430FR235x Demo - Timer1_B3, PWM TB1.1-2, Up Mode, DCO SMCLK
-//
-//  Description: This program generates two PWM outputs on P2.0,P2.1 using
-//  Timer1_B configured for up mode. The value in CCR0, 1000-1, defines the PWM
-//  period and the values in CCR1 and CCR2 the PWM duty cycles. Using ~1MHz
-//  SMCLK as TBCLK, the timer period is ~1ms with a 75% duty cycle on P2.0
-//  and 25% on P2.1.
-//  ACLK = n/a, SMCLK = MCLK = TBCLK = 1MHz
-//
-// Servo Verdahtung:
-//           MSP430FR2355
-//         ---------------
-//     /|\|               |
-//      | |               |
-//      --|RST            |
-//        |               |
-//        |     P2.0/TB1.1|--> CCR1 - XX% PWM
-//        |               |
-//
-//
-//   Darren Lu
-//   Texas Instruments Inc.
-//   Oct. 2016
-//   Built with IAR Embedded Workbench v6.50 & Code Composer Studio v6.2
-//
+ * Servo Verdrahtung:
+ *           MSP430FR2355
+ *         ---------------
+ *     /|\|               |
+ *      | |               |
+ *      --|RST            |
+ *        |               |
+ *        |     P2.0/TB1.1|--> CCR1 - XX% PWM
+ *        |               |
+ *
+ *   Darren Lu
+ *   Texas Instruments Inc.
+ *   Oct. 2016
+ *   Built with IAR Embedded Workbench v6.50 & Code Composer Studio v6.2
  */
+
 #include "driverlib.h"
 #include "Board.h"
 #include "us_sensor.h"
@@ -163,8 +110,17 @@
 // Der PCF8574 Baustein hat folgende 7-Bit Adresse: 0x3F (dez 63) : 0011 1111
 // Somit ergibt sich für Schreibzugriffe folgender Adresswert: 0111 1110 = 0x7E
 // Die Driverlib erwartet jedoch die Angabe der tatsächlichen 7-Bit Adresse, also 0x3F
-#define SLAVE_ADDRESS 0x27  //#define SLAVE_ADDRESS 0x3F //fuer PCF8574AT bei nur 8574T dann 0x27
+/**
+ * @brief I2C-Slave-Adresse für den PCF8574 I/O Expander.
+ *
+ * Diese Definition legt die I2C-Slave-Adresse für den PCF8574 I/O Expander fest.
+ * Je nach Version des PCF8574 (PCF8574T oder PCF8574AT) wird die entsprechende Adresse gewählt.
+ * - PCF8574T: Adresse 0x27
+ * - PCF8574AT: Adresse 0x3F
+ */
+#define SLAVE_ADDRESS 0x27
 
+///initialisiert die pins
 void init_gpio(void);
 void init_cs(void);
 
@@ -176,37 +132,43 @@ void init_i2c(void);
 void sleep(uint16_t ms);
 
 
-void detectedSomething(int i, uint16_t pDistance);
+void detectedSomething(int pPosition, uint16_t pDistance);
 void configurePWM(int pwmSignal);
 void startUp();
 
-///main funktion für Interactivität
+/**
+ * @brief Hauptfunktion für die Interaktivität.
+ *
+ * Diese Funktion initialisiert die Hardware, konfiguriert den PWM für den Servo,
+ * startet den Ultraschallsensor und verarbeitet die Entfernungsmessungen, um
+ * erkannte Patienten anzuzeigen.
+ */
 void main (void)
 {
     uint16_t distance;
-    char string1[17] = "";  //null-Terminierung belegt 17. Zeichen
-    char string2[17] = "";  //wichtig: den String auf ganzer Länge definieren,
-                                            //damit am an den letzten Stellen nicht noch der
-                                            //Rest von der letzten Ausgabe auftaucht.
+    char string1[17] = "";      //null-Terminierung belegt 17. Zeichen
+    char string2[17] = "";      //wichtig: den String auf ganzer Länge definieren,
+                                //damit am an den letzten Stellen nicht noch der
+                                //Rest von der letzten Ausgabe auftaucht.
 
     WDT_A_hold(WDT_A_BASE);     //Stop watchdog timer
-    //Servo
-    P2DIR |= BIT0;                            // P2.0 output
-    P2SEL0 |= BIT0;                           // P2.0 options select
+    // Servo-Initialisierung
+    P2DIR |= BIT0;              // P2.0 output
+    P2SEL0 |= BIT0;             // P2.0 options select
     // Disable the GPIO power-on default high-impedance mode to activate
     // previously configured port settings
 
-    //Green LED
-    P6DIR |= 0x40;                          // Set P6.6 to output direction
-    //Green LED End
+    // Grüne LED-Initialisierung
+    P6DIR |= 0x40;              // Set P6.6 to output direction
+    // Grüne LED-Initialisierung Ende
 
-    PM5CTL0 &= ~LOCKLPM5;
+    PM5CTL0 &= ~LOCKLPM5;       // Port-Einstellungen freigeben
 
-    TB1CCR0 = 20000-1;                         // PWM Period
-    TB1CCTL1 = OUTMOD_7;                      // CCR1 reset/set
-    //Servo End
+    TB1CCR0 = 20000-1;          // PWM Period
+    TB1CCTL1 = OUTMOD_7;        // CCR1 reset/set
+    // Servo-Initialisierung Ende
 
-    init_gpio();
+    init_gpio();                 // GPIO initialisieren
 
     //LCD
     init_timer();
@@ -214,53 +176,53 @@ void main (void)
     init_i2c();
     //LCD End
 
-    sr04_init();
-    __bis_SR_register(GIE);     //Enable global interrupt
-    sr04_start();
+    sr04_init();                // HC-SR04-Ultraschallsensor initialisieren
+    __bis_SR_register(GIE);     // Globalen Interrupt aktivieren
+    sr04_start();               // HC-SR04-Ultraschallsenso starten
 
-    lcd1602_init();
-    lcd1602_backlight(true);
+    lcd1602_init();             // LCD initialisieren
+    lcd1602_backlight(true);    // LCD-Hintergrundbeleuchtung einschalten
 
     lcd1602_write(1,string1);
     lcd1602_write(2,string2);
 
-    int abstandsErkennung = 1500; //Der Abstand in den innerhalb das System etwas erkennen soll in mm
+    int abstandsErkennung = 1500;   // Der Abstand in mm, innerhalb dessen das System etwas erkennen soll
+    int startGrad = 1000;           // Der Wert 500 entspricht -45°
+    int endGrad = 2000;             // Der Wert 2500 entspricht 135°
+    int pwmSteps = 66;              // 90°/16 Display-Ziffern = 5,625° pro Ziffer
+                                    // Bereich = 1000 PWM; 1000 PWM/90° = 62,5 PWM/° = pwmSteps
+    int pwmValue = 0;               // Der PWM-Wert, der an den Servo gesendet wird
+    int i = 8;                      // Zähler für die Schleife, startet bei 8, damit der Servo in der Mitte ist (45°)
+    int detectionCounter = 0;       // Zähler, um das Display zurückzusetzen
 
-    int startGrad = 1000;                   //Der Wert 500 entspricht -45°
-    int endGrad = 2000;                    //Der Wert 2500 entspricht 135°
-    int pwmSteps = 66;                      // 90°/16Display digits = 5,625° pro Digit
-                                   //Range = 1000pwm; 1000pwm/90° = 62,5pwm/° = pwmSteps
-    int pwmValue = 0;               //Der pwm Wert der an den Servo gesendet wird
-    int i = 8;                      //Zaehler fuer die Schleife, startet bei 8 damit der Servo in der mitte ist bei 45°
-    int detectionCounter = 0;   //Dieser counter ist dafuer da, damit das Display resettet wird
 
-    startUp();
+    startUp();                  // Initialisierungsroutine ausführen
 
     while (1)
     {
-        // Countup from 1000 to 2000
+        // Aufwärts zählen von 1000 bis 2000
         for (i = i; startGrad + pwmSteps*i <= endGrad; i++) {
             pwmValue = startGrad + pwmSteps * i;
-            configurePWM(pwmValue);             // Set PWM to current value
+            configurePWM(pwmValue);             // Setzt PWM auf den aktuellen Wert
             distance = sr04_get_value();
             if(distance<=abstandsErkennung){
                 detectedSomething(i, distance);
                 detectionCounter = 0;
             }
-            __delay_cycles(250000);            // Delay 1 second (assuming 1 MHz clock)
+            __delay_cycles(250000);             // Sleep 0,25 sekunden (bei 1 MHz clock)
         }
         detectionCounter++;
 
-        // Countdown from 2000 to 1000
+        // Abwärts zählen von 2000 bis 1000
         for (i = i-1; startGrad + pwmSteps*i >= startGrad;i--) {
             pwmValue = startGrad + pwmSteps * i;
-            configurePWM(pwmValue);             // Set PWM to current value
+            configurePWM(pwmValue);             // Setzt PWM auf den aktuellen Wert
             distance = sr04_get_value();
             if(distance<=abstandsErkennung){
                 detectedSomething(i, distance);
                 detectionCounter = 0;
             }
-            __delay_cycles(250000);            // Delay 1 second (assuming 1 MHz clock)
+            __delay_cycles(250000);             // Sleep 0,25 sekunden (bei 1 MHz clock)
         }
 
         detectionCounter++;
@@ -274,50 +236,89 @@ void main (void)
     }
 }
 
-void configurePWM(int pwmSignal){              //zwischen 1000 und 2000 offiziell, aber auch möglich zwischen 500-2500 somit 180 grad
-
-    TB1CCR1 = pwmSignal;                            // CCR1 PWM duty cycle
-    TB1CTL = TBSSEL__SMCLK | MC__UP | TBCLR;  // SMCLK, up mode, clear TBR
+/**
+ * @brief Konfiguriert das PWM-Signal.
+ *
+ * Diese Funktion konfiguriert das PWM-Signal mit einem angegebenen Wert. Der PWM-Signalwert
+ * kann offiziell zwischen 1000 und 2000 liegen, jedoch sind auch Werte zwischen 500 und 2500
+ * möglich, was einem Bereich von 180 Grad entspricht.
+ *
+ * @param pwmSignal Der PWM-Signalwert, zwischen 500 und 2500.
+ */
+void configurePWM(int pwmSignal){
+    // Setzen des PWM duty cycle für CCR1
+    TB1CCR1 = pwmSignal;
+    // Konfiguration des Timers
+    TB1CTL = TBSSEL__SMCLK | MC__UP | TBCLR;
 }
 
-void startUp(){                                 //Start Methode beim hochfahren des MSP430, eine Prozedur die ausgefuehrt wird
-    P6OUT ^= 0x40;                      // Toggle P6.6 using exclusive-OR, es leuchtet die gruene LED
+
+/**
+ * @brief Startet die Initialisierungsprozedur beim Hochfahren des MSP430.
+ *
+ * Diese Funktion führt eine Prozedur aus, die beim Hochfahren des MSP430 aufgerufen wird.
+ * Sie schaltet eine grüne LED ein und führt eine Reihe von PWM-Konfigurationen und Verzögerungen durch,
+ * bevor sie die LED wieder ausschaltet.
+ */
+void startUp(){
+    // Toggle P6.6 using exclusive-OR, es leuchtet die grüne LED
+    P6OUT ^= 0x40;
+    // Konfiguriere PWM mit einem Wert von 1500 und warte
     configurePWM(1500);
     __delay_cycles(1000000);
+    // Konfiguriere PWM mit einem Wert von 500 und warte
     configurePWM(500);
     __delay_cycles(1000000);
+    // Konfiguriere PWM mit einem Wert von 2500 und warte
     configurePWM(2500);
     __delay_cycles(1000000);
+    // Konfiguriere PWM mit einem Wert von 1500 und warte
     configurePWM(1500);
     __delay_cycles(1000000);
-    P6OUT ^= 0x40;                      // Toggle P6.6 using exclusive-OR, gruene LED wird ausgeschalten
+    // Toggle P6.6 using exclusive-OR, grüne LED wird ausgeschaltet
+    P6OUT ^= 0x40;
 }
 
-void detectedSomething(int i, uint16_t pDistance ){ //Diese Methode wird ausgefuehrt, wenn der SR04 etwas erkennt.
-    P6OUT ^= 0x40;                      // Toggle P6.6 using exclusive-OR, es leuchtet die gruene LED
+/**
+ * @brief Diese Methode wird ausgeführt, wenn der HC-SR04-Ultraschallsensor etwas erkennt.
+ *
+ * Diese Funktion wird aufgerufen, wenn der SR04-Sensor einen Patienten erkennt. Sie schaltet eine
+ * grüne LED ein, zeigt die erkannte Entfernung und die Position auf einem LCD-Display an und
+ * schaltet die LED wieder aus.
+ *
+ * @param i Die Position des erkannten Objekts.
+ * @param pDistance Die gemessene Entfernung zum erkannten Objekt in Millimetern.
+ */
+void detectedSomething(int pPosition, uint16_t pDistance ){
+    // Toggle P6.6 using exclusive-OR, es leuchtet die grüne LED
+    P6OUT ^= 0x40;
 
-    char array[17]; // Erstellen Sie ein char-Array mit einer Länge von 17
-    // Initialisieren Sie das Array mit Leerzeichen oder einem anderen Zeichen
+    // Erstellung eines char-Array mit einer Länge von 17
+    char array[17];
+    // Initialisierung des Arrays mit Leerzeichen
     int j;
     for (j = 0; j < 17; j++) {
         array[j] = ' ';
     }
-    // Setzen Sie das Zeichen 'x' an die gewünschte Position
-    if (i >= 0 && i < 17) { // Überprüfen Sie, ob die Position im gültigen Bereich liegt
-        if(i == 16){
-            array[16-i] = 'x';
+    // Einsetzen des Buchstaben 'x' an die gewünschte Position
+    if (pPosition >= 0 && pPosition < 17) { // Überprüfen, ob die Position im gültigen Bereich liegt
+        if(pPosition == 16){
+            array[16-pPosition] = 'x';
         }else{
-            array[16-i-1] = 'x';
+            array[16-pPosition-1] = 'x';
         }
     }
     char string17[17];
+
+    // Formatierung der Entfernung als Zeichenkette und Anzeige auf dem LCD
     if(pDistance == 0){
         pDistance = 1500;
     }
-    sprintf(string17, "%dmm    ", pDistance); //z. B. Ausgabe: 1499mm
+    sprintf(string17, "%dmm    ", pDistance); // z. B. Ausgabe: 1499mm
     lcd1602_write(1,string17);
     lcd1602_write(2,array);
-    P6OUT ^= 0x40;                      // Toggle P6.6 using exclusive-OR, gruene LED wird ausgeschalten
+    // Toggle P6.6 using exclusive-OR, grüne LED wird ausgeschaltet
+    P6OUT ^= 0x40;
 }