Fehlerbehandlung in C (PI5)

Aus C und Assembler mit Raspberry
Version vom 13. August 2024, 12:34 Uhr von Satyria (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Da wir bisher keine Möglichkeit haben, Informationen bewusst an uns zu senden, nutzen wir nun die LED, um festzustellen, wenn etwas schiefgeht. Dazu erstellen wir eine Funktion, die über die LED einen Fehlercode anzeigen kann. Wir erweitern dazu unseren "led.c" Code mit dieser Funktion: <syntaxhighlight lang="C"> void LED_Error(u32 errorcode) { while (TRUE) { for (u32 z = 0; z < errorcode; z++) { LED_on(); // LED…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Da wir bisher keine Möglichkeit haben, Informationen bewusst an uns zu senden, nutzen wir nun die LED, um festzustellen, wenn etwas schiefgeht. Dazu erstellen wir eine Funktion, die über die LED einen Fehlercode anzeigen kann.

Wir erweitern dazu unseren "led.c" Code mit dieser Funktion:

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

Um nun diese Funktion zu testen, ändern wir unseren "main.c" Code:

//
// kernel.c
//

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

int main (void)
{
   LED_off();
   LED_Error(2);
}

Zunächst schalten wir die LED aus. Mit "LED_Error(2)" testen wir die neue Funktion. Der Fehlercode #2 wird nun zweimal kurz hintereinander die LED aufleuchten lassen, eine kurze Pause machen und das Ganze wird wiederholt.

Solange wir keine andere Möglichkeit haben, einen Fehler zu sehen, werden wir diese Funktion verwenden.