Fehlerbehandlung in C (PI5)
Aus C und Assembler mit Raspberry
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.