Code

Sämtlicher Code ist in C programmiert.

Ein Teil der implementierten Treiber wurde mithilfe von STM32 CubeMX generiert.

Passwortdatenbank

Es können neue Einträge angelegt und unter einem selbst wählbaren Namen Abgespeichert werden. Anschließend wird ein Random Passwort in gewünschter länge generiert und abgespeichert.

Menüaufbau

Der Aufbau des Menüs ist Listenartig Aufgebaut und in Untermenüs strukturiert die zur gewünschten Funktion führen.

Bedienung

Schlichtes UI das der internen Menüstruktur entspricht.
Die Eingabeperipherals belegen kontinuierlich dieselbe Funktion und ermöglichen somit eine einfache Bedienung des Geräts.

Treiber

Eingabeperipherals

Die Funktion der zwei Buttons wird im jeweiligen Kontext als Callback-Function hinterlegt. Reagiert wird über Interrupts.

Der Dreh-Encoder wird auf Hardwareseite über einen Timer verarbeitet und intern Regelmäßig ausgelesen.

OLED-Display

Der OLED-Treiber gibt Strings auf dem Display aus.

LEDs

Die helligkeit der LEDs wird über einen PWM Timer festgelegt.

RTC

Der RTC kann die aktuelle Uhrzeit im HH:MM Format ausgeben, aber auch als Unixzeit für die One-Time Passwort Generierung.

USB

Ermöglicht den Anschluss an ein Endgerät als USB Tastatur und die Eingabe von Zeichen.

SVCall

Software Interrupt der es ermöglicht, Codeabschnitte im Priviliged-Mode auszuführen