Fehlerbehandlung in C (PI5): Unterschied zwischen den Versionen

Aus C und Assembler mit Raspberry
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 38: Zeile 38:


Bis wir eine bessere Möglichkeit haben, Fehler anzuzeigen, werden wir diese Funktion verwenden.
Bis wir eine bessere Möglichkeit haben, Fehler anzuzeigen, werden wir diese Funktion verwenden.
{|
|-
| style="width: 33%; text-align:left;" | [[Lass die LED leuchten in C (PI5)|< Zurück]] || style="width: 33%" | [[Hauptseite|^ Hauptseite]] || style="width: 33%; text-align:right;" | [[Grafik in C (PI5)|weiter >]]
|}

Version vom 13. August 2024, 13:11 Uhr

Da wir bisher keine Möglichkeit haben, uns gezielt Informationen anzuzeigen, nutzen wir die LED, um zu erkennen, wenn ein Fehler auftritt. Dazu erstellen wir eine Funktion, die mithilfe der LED einen Fehlercode anzeigt.

Wir erweitern dafür unseren „led.c“-Code um folgende Funktion:

void LED_Error(u32 errorcode) 
{
    while (TRUE) 
    {
        for (u32 z = 0; z < errorcode; z++) 
        {
            LED_on(); // LED einschalten
            wait(0x100000); // Kurze Wartezeit
            LED_off(); // LED ausschalten
            wait(0x100000); // Kurze Wartezeit
        }
        wait(0x100000); // Zusätzliche Wartezeit, um den Fehlercode erkennbar zu machen
    }
}

Diese Funktion lässt die LED entsprechend des übergebenen Fehlercodes aufleuchten. Der Fehlercode gibt an, wie oft die LED aufleuchtet, bevor eine kurze Pause erfolgt.

Um die Funktion zu testen, passen wir unseren "main.c"-Code wie folgt an:

//
// kernel.c
//

#include "led.h"
#include "time.h"

int main (void)
{
   LED_off();     // LED zunächst ausschalten
   LED_Error(2);  // Fehlercode 2 testen
}

Zunächst schalten wir die LED aus. Dann testen wir die neue Funktion mit "LED_Error(2)". Dadurch wird die LED zweimal kurz hintereinander aufleuchten, eine kurze Pause machen und diesen Vorgang wiederholen.

Bis wir eine bessere Möglichkeit haben, Fehler anzuzeigen, werden wir diese Funktion verwenden.

< Zurück ^ Hauptseite weiter >