WGR-V
 
Lade ...
Suche ...
Keine Treffer
wgrhal_ext.h-Dateireferenz

Erweiterte Funktionen und Hardwarezugriffe für den WGR-V-Prozessor. Mehr ...

#include "wgrtypes.h"

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  rgb_color_t
 Struktur zur Darstellung einer RGB-Farbe. Mehr ...
 
struct  div_result_t
 Struktur zur Rückgabe eines Divisionsergebnisses. Mehr ...
 

Makrodefinitionen

#define HWREG32(addr)   (*((volatile uint32_t *)(addr)))
 
#define MULT_BASE_ADDR   0x00000500
 Basisadresse für den Hardware-Multiplikator.
 
#define MULT_INFO_OFFSET   0x0000
 Offset für das Informationsregister des Multiplikators.
 
#define MUL1_OFFSET   0x0004
 Offset für den ersten Multiplikanden.
 
#define MUL2_OFFSET   0x0008
 Offset für den zweiten Multiplikanden.
 
#define RESH_OFFSET   0x000C
 Offset für die höheren 32-Bit des 64-Bit-Ergebnisses.
 
#define RESL_OFFSET   0x0010
 Offset für die niederwertigen 32-Bit des 64-Bit-Ergebnisses.
 
#define DIV_BASE_ADDR   0x00000600
 Basisadresse für den Hardware-Divider.
 
#define DIV_INFO_OFFSET   0x00
 Offset für das Informationsregister des Dividers.
 
#define DIV_END_OFFSET   0x04
 Offset für den Dividend.
 
#define DIV_SOR_OFFSET   0x08
 Offset für den Divisor.
 
#define DIV_QUO_OFFSET   0x0C
 Offset für den Quotienten.
 
#define DIV_REM_OFFSET   0x10
 Offset für den Rest.
 
#define SPI_BASE_ADDR   0x00000700
 Basisadresse für die SPI-Schnittstelle.
 
#define SPI_CTRL_OFFSET   0x0000
 Offset für das SPI-Steuerregister.
 
#define SPI_CLK_OFFSET   0x0004
 Offset für das SPI-Taktregister.
 
#define SPI_STATUS_OFFSET   0x0008
 Offset für das SPI-Statusregister.
 
#define SPI_TX_OFFSET   0x000C
 Offset für das SPI-Sende-Register.
 
#define SPI_RX_OFFSET   0x0010
 Offset für das SPI-Empfangsregister.
 
#define SPI_CS_OFFSET   0x0014
 Offset für die SPI-Chipselect-Steuerung.
 
#define WS_BASE_ADDR   0x00000900
 Basisadresse für die WS2812B LED-Steuerung.
 
#define SSD1351_WIDTH   128
 Breite des SSD1351 Displays in Pixel.
 
#define SSD1351_HEIGHT   128
 Höhe des SSD1351 Displays in Pixel.
 
#define CHAR_WIDTH   6
 Breite eines Zeichens in Pixel.
 
#define CHAR_HEIGHT   8
 Höhe eines Zeichens in Pixel.
 
#define STATUS_BAR_ROWS   1
 Anzahl der Zeilen für die Statusleiste.
 
#define TOTAL_ROWS   (SSD1351_HEIGHT / CHAR_HEIGHT)
 Gesamte Anzahl der Textzeilen auf dem Display.
 
#define TERM_COLS   (SSD1351_WIDTH / CHAR_WIDTH)
 Anzahl der Spalten im Terminal.
 
#define TERM_ROWS   (TOTAL_ROWS)
 Anzahl der Zeilen im Terminal.
 
#define SSD1351_SPI_TIMEOUT   10
 SPI-Zeitlimit in Millisekunden für das Display.
 
#define HOUSEKEEPING_MS   250
 Intervall für Display-Housekeeping in Millisekunden.
 
#define COLOR_BLACK   0x0000
 Farbe: Schwarz.
 
#define COLOR_WHITE   0xFFFF
 Farbe: Weiß.
 
#define COLOR_RED   0x07E0
 Farbe: Rot.
 
#define COLOR_GREEN   0xF800
 Farbe: Grün.
 
#define COLOR_BLUE   0x001F
 Farbe: Blau.
 
#define COLOR_YELLOW   0xFFE0
 Farbe: Gelb.
 
#define COLOR_MAGENTA   0xF81F
 Farbe: Magenta.
 
#define COLOR_CYAN   0x07FF
 Farbe: Cyan.
 

Aufzählungen

enum  note_t {
  NOTE_C = 0 , NOTE_Cs = 1 , NOTE_D = 2 , NOTE_Ds = 3 ,
  NOTE_E = 4 , NOTE_F = 5 , NOTE_Fs = 6 , NOTE_G = 7 ,
  NOTE_Gs = 8 , NOTE_A = 9 , NOTE_As = 10 , NOTE_B = 11
}
 Aufzählung der Noten im Halbtonsystem. Mehr ...
 

Funktionen

uint64_t mult_calc_64 (uint32_t multiplicand, uint32_t multiplier)
 Berechnet das 64-Bit-Ergebnis einer Multiplikation.
 
uint32_t mult_calc (uint32_t multiplicand, uint32_t multiplier)
 Berechnet das 32-Bit-Ergebnis einer Multiplikation.
 
int32_t div_calc (uint32_t dividend, uint32_t divisor, div_result_t *result)
 Führt eine Division durch und liefert Quotient und Rest.
 
uint32_t div_calc_quotient (uint32_t dividend, uint32_t divisor)
 Berechnet den Quotienten einer Division.
 
uint32_t div_calc_remainder (uint32_t dividend, uint32_t divisor)
 Berechnet den Rest einer Division.
 
void spi_enable (void)
 Aktiviert die SPI-Schnittstelle.
 
void spi_disable (void)
 Deaktiviert die SPI-Schnittstelle.
 
void spi_automatic_cs (bool active)
 Aktiviert oder deaktiviert den automatischen Chipselect (CS) der SPI-Schnittstelle.
 
void spi_cs (uint32_t active)
 Setzt den SPI-Chipselect-Zustand.
 
void spi_set_clock_offet (uint32_t offset)
 Setzt den Takt-Offset der SPI-Schnittstelle.
 
void spi_set_clock_divider (uint32_t divider)
 Konfiguriert den Taktteiler der SPI-Schnittstelle.
 
uint32_t spi_get_status (void)
 Liest den aktuellen Status der SPI-Schnittstelle.
 
uint32_t spi_fifo_full (void)
 Prüft, ob das SPI-FIFO voll ist.
 
uint32_t spi_is_ready (void)
 Prüft, ob die SPI-Schnittstelle bereit ist.
 
uint32_t spi_is_busy (void)
 Prüft, ob die SPI-Schnittstelle beschäftigt ist.
 
uint32_t spi_rx_full (void)
 Prüft, ob der SPI-Empfangspuffer voll ist.
 
uint32_t spi_rx_empty (void)
 Prüft, ob der SPI-Empfangspuffer leer ist.
 
uint32_t spi_tx_full (void)
 Prüft, ob der SPI-Sende-Puffer voll ist.
 
uint32_t spi_tx_empty (void)
 Prüft, ob der SPI-Sende-Puffer leer ist.
 
int32_t spi_wait_rx_data (uint32_t timeout_ms)
 Wartet darauf, dass Daten im SPI-Empfangspuffer verfügbar sind.
 
int32_t spi_write_byte (uint8_t data, uint32_t timeout_ms)
 Sendet ein Byte über die SPI-Schnittstelle.
 
int32_t spi_read_byte (uint8_t *data, uint32_t timeout_ms)
 Liest ein Byte von der SPI-Schnittstelle.
 
int32_t spi_write_buffer (const uint8_t *buf, uint32_t length, uint32_t timeout_ms)
 Sendet einen Datenpuffer über SPI.
 
int32_t spi_write_uint32 (uint32_t value, uint32_t timeout_ms)
 Sendet einen 32-Bit-Wert über SPI.
 
int32_t spi_read_buffer (uint8_t *buf, uint32_t length, uint32_t timeout_ms)
 Liest einen Datenpuffer von der SPI-Schnittstelle.
 
int32_t ws2812_set_color (uint8_t led, rgb_color_t color)
 Setzt die Farbe einer WS2812B LED.
 
rgb_color_t ws2812_get_color (uint8_t led)
 Liest die aktuell gesetzte Farbe einer WS2812B LED.
 
int32_t ws2812_write_all (const rgb_color_t colors[8])
 Schreibt die Farben aller 8 WS2812B LEDs.
 
int32_t ws2812_fill (rgb_color_t color)
 Füllt alle WS2812B LEDs mit einer einheitlichen Farbe.
 
void ws2812_clear (void)
 Schaltet alle WS2812B LEDs aus.
 
int pwm_precompute_notes (void)
 Berechnet Notenparameter für den PWM-Modus.
 
void pwm_play_note (note_t note, uint32_t octave)
 Spielt eine bestimmte Note in einer festgelegten Oktave über den PWM aus.
 
void pwm_free_note_buffer (void)
 Gibt den für PWM-Noten reservierten Speicher frei.
 
void * malloc (uint32_t size)
 Allokiert einen Speicherblock.
 
void free (void *ptr)
 Gibt einen zuvor allokierten Speicherblock frei.
 
void * realloc (void *ptr, uint32_t size)
 Ändert die Größe eines allokierten Speicherblocks.
 
void * calloc (uint32_t nmemb, uint32_t size)
 Allokiert einen Speicherblock für ein Array und initialisiert diesen mit 0.
 
uint32_t heap_free_space (void)
 Ermittelt den aktuell freien Heap-Speicher.
 
void housekeeping (void)
 Führt periodische Wartungsarbeiten am SSD1351 Display durch (z.B. Cursor-Blinken).
 
void ssd1351_inv (void)
 Schaltet den Invertierungsmodus des Displays um.
 
void ssd1351_send_data (const uint8_t *data, size_t len)
 Sendet einen Datenpuffer an das SSD1351 Display.
 
void ssd1351_send_command (uint8_t cmd)
 Sendet einen einzelnen Befehl an das SSD1351 Display.
 
void ssd1351_send_command_with_data (uint8_t cmd, const uint8_t *data, size_t len)
 Sendet einen Befehl mit zugehörigen Daten an das SSD1351 Display.
 
void ssd1351_send_commands (const uint8_t *buf, size_t len)
 Sendet eine Folge von Befehlen an das SSD1351 Display.
 
void ssd1351_init (void)
 Initialisiert das SSD1351 Display.
 
void ssd1351_set_position (uint8_t x, uint8_t y, uint8_t w, uint8_t h)
 Setzt die Schreibposition und den Bereich im SSD1351 Display.
 
void ssd1351_fill_screen (uint16_t color)
 Füllt das gesamte Display mit einer Farbe.
 
void ssd1351_draw_pixel (uint8_t x, uint8_t y, uint16_t color)
 Zeichnet einen einzelnen Pixel an einer bestimmten Position.
 
void terminal_init (void)
 Initialisiert das Terminal (Display) des SSD1351.
 
void terminal_print (const char *str)
 Gibt einen String im Terminal aus.
 
void terminal_print_col (const char *text, uint16_t color)
 Gibt einen String im Terminal mit einer bestimmten Textfarbe aus.
 
void print_ok_res (const char *label, int32_t value)
 Gibt ein Label und einen numerischen Wert (als String) aus, farblich als OK markiert.
 
void print_ok (const char *label)
 Gibt ein Label als OK-Nachricht aus.
 
void print_error (const char *label)
 Gibt ein Label als Fehlernachricht aus.
 
void terminal_put_char (char c)
 Gibt ein einzelnes Zeichen im Terminal aus und aktualisiert den Cursor.
 
void terminal_set_text_color (uint16_t color)
 Setzt die Textfarbe des Terminals.
 
void terminal_set_bg_color (uint16_t color)
 Setzt die Hintergrundfarbe des Terminals.
 
void terminal_draw_text (uint8_t row, uint8_t col, const char *str, uint16_t fg_color, uint16_t bg_color)
 Zeichnet einen Text an einer bestimmten Terminalposition mit definierten Vorder- und Hintergrundfarben.
 
void terminal_draw_text_default (uint8_t row, uint8_t col, const char *str)
 Zeichnet einen Text an einer bestimmten Terminalposition mit Standardfarben.
 
void terminal_native_scroll (void)
 Scrollt das Terminal um eine Zeile.
 
void clear_terminal_row (uint8_t row)
 Löscht eine bestimmte Terminalzeile.
 
void clear_terminal (void)
 Löscht das gesamte Terminal.
 
void draw_status_bar (const char *text, uint16_t bg_color, uint16_t fg_color)
 Zeichnet eine Statusleiste am oberen Displayrand.
 
void draw_char_cell (uint8_t row, uint8_t col, char c)
 Zeichnet ein einzelnes Zeichen in einer Terminalzelle.
 
void draw_char_cell_custom (uint8_t row, uint8_t col, char c, uint16_t fg, uint16_t bg)
 Zeichnet ein einzelnes Zeichen in einer Terminalzelle mit individuellen Farben.
 
uint32_t ssd1351_cursor_x (void)
 Gibt die aktuelle X-Position des Cursors im SSD1351 Terminal zurück.
 

Variablen

const uint8_t note_freq_halfbase [12]
 Frequenztabelle für Noten (Halbton-Basis).
 
char _heap_start
 Start- und Endadressen des Heaps und Stacks (extern deklariert).
 
char _heap_end
 
char _sstack
 
char _estack
 

Ausführliche Beschreibung

Erweiterte Funktionen und Hardwarezugriffe für den WGR-V-Prozessor.

Diese Header-Datei erweitert die Basisfunktionen um Hardwareunterstützung für Multiplikation, Division, SPI-Kommunikation, WS2812B LED-Steuerung, PWM-basierte Tonerzeugung, dynamischen Speicher (malloc) sowie ein SSD1351 Display mit Terminal-Funktionen.

Definiert in Datei wgrhal_ext.h.

Makro-Dokumentation

◆ CHAR_HEIGHT

#define CHAR_HEIGHT   8

Höhe eines Zeichens in Pixel.

Definiert in Zeile 577 der Datei wgrhal_ext.h.

◆ CHAR_WIDTH

#define CHAR_WIDTH   6

Breite eines Zeichens in Pixel.

Definiert in Zeile 573 der Datei wgrhal_ext.h.

◆ COLOR_BLACK

#define COLOR_BLACK   0x0000

Farbe: Schwarz.

Definiert in Zeile 606 der Datei wgrhal_ext.h.

◆ COLOR_BLUE

#define COLOR_BLUE   0x001F

Farbe: Blau.

Definiert in Zeile 622 der Datei wgrhal_ext.h.

◆ COLOR_CYAN

#define COLOR_CYAN   0x07FF

Farbe: Cyan.

Definiert in Zeile 634 der Datei wgrhal_ext.h.

◆ COLOR_GREEN

#define COLOR_GREEN   0xF800

Farbe: Grün.

Definiert in Zeile 618 der Datei wgrhal_ext.h.

◆ COLOR_MAGENTA

#define COLOR_MAGENTA   0xF81F

Farbe: Magenta.

Definiert in Zeile 630 der Datei wgrhal_ext.h.

◆ COLOR_RED

#define COLOR_RED   0x07E0

Farbe: Rot.

Definiert in Zeile 614 der Datei wgrhal_ext.h.

◆ COLOR_WHITE

#define COLOR_WHITE   0xFFFF

Farbe: Weiß.

Definiert in Zeile 610 der Datei wgrhal_ext.h.

◆ COLOR_YELLOW

#define COLOR_YELLOW   0xFFE0

Farbe: Gelb.

Definiert in Zeile 626 der Datei wgrhal_ext.h.

◆ DIV_BASE_ADDR

#define DIV_BASE_ADDR   0x00000600

Basisadresse für den Hardware-Divider.

Definiert in Zeile 47 der Datei wgrhal_ext.h.

◆ DIV_END_OFFSET

#define DIV_END_OFFSET   0x04

Offset für den Dividend.

Definiert in Zeile 55 der Datei wgrhal_ext.h.

◆ DIV_INFO_OFFSET

#define DIV_INFO_OFFSET   0x00

Offset für das Informationsregister des Dividers.

Definiert in Zeile 51 der Datei wgrhal_ext.h.

◆ DIV_QUO_OFFSET

#define DIV_QUO_OFFSET   0x0C

Offset für den Quotienten.

Definiert in Zeile 63 der Datei wgrhal_ext.h.

◆ DIV_REM_OFFSET

#define DIV_REM_OFFSET   0x10

Offset für den Rest.

Definiert in Zeile 67 der Datei wgrhal_ext.h.

◆ DIV_SOR_OFFSET

#define DIV_SOR_OFFSET   0x08

Offset für den Divisor.

Definiert in Zeile 59 der Datei wgrhal_ext.h.

◆ HOUSEKEEPING_MS

#define HOUSEKEEPING_MS   250

Intervall für Display-Housekeeping in Millisekunden.

Definiert in Zeile 601 der Datei wgrhal_ext.h.

◆ HWREG32

#define HWREG32 (   addr)    (*((volatile uint32_t *)(addr)))

Definiert in Zeile 16 der Datei wgrhal_ext.h.

◆ MUL1_OFFSET

#define MUL1_OFFSET   0x0004

Offset für den ersten Multiplikanden.

Definiert in Zeile 30 der Datei wgrhal_ext.h.

◆ MUL2_OFFSET

#define MUL2_OFFSET   0x0008

Offset für den zweiten Multiplikanden.

Definiert in Zeile 34 der Datei wgrhal_ext.h.

◆ MULT_BASE_ADDR

#define MULT_BASE_ADDR   0x00000500

Basisadresse für den Hardware-Multiplikator.

Definiert in Zeile 22 der Datei wgrhal_ext.h.

◆ MULT_INFO_OFFSET

#define MULT_INFO_OFFSET   0x0000

Offset für das Informationsregister des Multiplikators.

Definiert in Zeile 26 der Datei wgrhal_ext.h.

◆ RESH_OFFSET

#define RESH_OFFSET   0x000C

Offset für die höheren 32-Bit des 64-Bit-Ergebnisses.

Definiert in Zeile 38 der Datei wgrhal_ext.h.

◆ RESL_OFFSET

#define RESL_OFFSET   0x0010

Offset für die niederwertigen 32-Bit des 64-Bit-Ergebnisses.

Definiert in Zeile 42 der Datei wgrhal_ext.h.

◆ SPI_BASE_ADDR

#define SPI_BASE_ADDR   0x00000700

Basisadresse für die SPI-Schnittstelle.

Definiert in Zeile 72 der Datei wgrhal_ext.h.

◆ SPI_CLK_OFFSET

#define SPI_CLK_OFFSET   0x0004

Offset für das SPI-Taktregister.

Definiert in Zeile 80 der Datei wgrhal_ext.h.

◆ SPI_CS_OFFSET

#define SPI_CS_OFFSET   0x0014

Offset für die SPI-Chipselect-Steuerung.

Definiert in Zeile 96 der Datei wgrhal_ext.h.

◆ SPI_CTRL_OFFSET

#define SPI_CTRL_OFFSET   0x0000

Offset für das SPI-Steuerregister.

Definiert in Zeile 76 der Datei wgrhal_ext.h.

◆ SPI_RX_OFFSET

#define SPI_RX_OFFSET   0x0010

Offset für das SPI-Empfangsregister.

Definiert in Zeile 92 der Datei wgrhal_ext.h.

◆ SPI_STATUS_OFFSET

#define SPI_STATUS_OFFSET   0x0008

Offset für das SPI-Statusregister.

Definiert in Zeile 84 der Datei wgrhal_ext.h.

◆ SPI_TX_OFFSET

#define SPI_TX_OFFSET   0x000C

Offset für das SPI-Sende-Register.

Definiert in Zeile 88 der Datei wgrhal_ext.h.

◆ SSD1351_HEIGHT

#define SSD1351_HEIGHT   128

Höhe des SSD1351 Displays in Pixel.

Definiert in Zeile 569 der Datei wgrhal_ext.h.

◆ SSD1351_SPI_TIMEOUT

#define SSD1351_SPI_TIMEOUT   10

SPI-Zeitlimit in Millisekunden für das Display.

Definiert in Zeile 597 der Datei wgrhal_ext.h.

◆ SSD1351_WIDTH

#define SSD1351_WIDTH   128

Breite des SSD1351 Displays in Pixel.

Definiert in Zeile 565 der Datei wgrhal_ext.h.

◆ STATUS_BAR_ROWS

#define STATUS_BAR_ROWS   1

Anzahl der Zeilen für die Statusleiste.

Definiert in Zeile 581 der Datei wgrhal_ext.h.

◆ TERM_COLS

#define TERM_COLS   (SSD1351_WIDTH / CHAR_WIDTH)

Anzahl der Spalten im Terminal.

Definiert in Zeile 589 der Datei wgrhal_ext.h.

◆ TERM_ROWS

#define TERM_ROWS   (TOTAL_ROWS)

Anzahl der Zeilen im Terminal.

Definiert in Zeile 593 der Datei wgrhal_ext.h.

◆ TOTAL_ROWS

#define TOTAL_ROWS   (SSD1351_HEIGHT / CHAR_HEIGHT)

Gesamte Anzahl der Textzeilen auf dem Display.

Definiert in Zeile 585 der Datei wgrhal_ext.h.

◆ WS_BASE_ADDR

#define WS_BASE_ADDR   0x00000900

Basisadresse für die WS2812B LED-Steuerung.

Definiert in Zeile 101 der Datei wgrhal_ext.h.

Dokumentation der Aufzählungstypen

◆ note_t

enum note_t

Aufzählung der Noten im Halbtonsystem.

Aufzählungswerte
NOTE_C 

Note C

NOTE_Cs 

Cis

NOTE_D 

Note D

NOTE_Ds 

Dis

NOTE_E 

Note E

NOTE_F 

Note F

NOTE_Fs 

Fis

NOTE_G 

Note G

NOTE_Gs 

Gis

NOTE_A 

Note A

NOTE_As 

Ais

NOTE_B 

Note B

Definiert in Zeile 363 der Datei wgrhal_ext.h.

Dokumentation der Funktionen

◆ calloc()

void * calloc ( uint32_t  nmemb,
uint32_t  size 
)

Allokiert einen Speicherblock für ein Array und initialisiert diesen mit 0.

Parameter
nmembAnzahl der Elemente.
sizeGröße eines Elements in Byte.
Rückgabe
Zeiger auf den allokierten Speicher oder NULL bei Fehler.

Definiert in Zeile 662 der Datei wgrhal_ext.c.

◆ clear_terminal()

void clear_terminal ( void  )

Löscht das gesamte Terminal.

Definiert in Zeile 878 der Datei wgrhal_ext.c.

◆ clear_terminal_row()

void clear_terminal_row ( uint8_t  row)

Löscht eine bestimmte Terminalzeile.

Parameter
rowZu löschende Zeile.

Definiert in Zeile 870 der Datei wgrhal_ext.c.

◆ div_calc()

int32_t div_calc ( uint32_t  dividend,
uint32_t  divisor,
div_result_t result 
)

Führt eine Division durch und liefert Quotient und Rest.

Parameter
dividendDividend.
divisorDivisor.
resultZeiger auf eine div_result_t-Struktur, in der Quotient und Rest gespeichert werden.
Rückgabe
0 bei Erfolg, -1 bei Fehler (z.B. Division durch 0 oder ungültiger Pointer).

Definiert in Zeile 52 der Datei wgrhal_ext.c.

◆ div_calc_quotient()

uint32_t div_calc_quotient ( uint32_t  dividend,
uint32_t  divisor 
)

Berechnet den Quotienten einer Division.

Parameter
dividendDividend.
divisorDivisor.
Rückgabe
Quotient oder -1 bei Division durch 0.

Definiert in Zeile 71 der Datei wgrhal_ext.c.

◆ div_calc_remainder()

uint32_t div_calc_remainder ( uint32_t  dividend,
uint32_t  divisor 
)

Berechnet den Rest einer Division.

Parameter
dividendDividend.
divisorDivisor.
Rückgabe
Rest oder -1 bei Division durch 0.

Definiert in Zeile 87 der Datei wgrhal_ext.c.

◆ draw_char_cell()

void draw_char_cell ( uint8_t  row,
uint8_t  col,
char  c 
)

Zeichnet ein einzelnes Zeichen in einer Terminalzelle.

Parameter
rowZeile.
colSpalte.
cZu zeichnendes Zeichen.

Definiert in Zeile 865 der Datei wgrhal_ext.c.

◆ draw_char_cell_custom()

void draw_char_cell_custom ( uint8_t  row,
uint8_t  col,
char  c,
uint16_t  fg,
uint16_t  bg 
)

Zeichnet ein einzelnes Zeichen in einer Terminalzelle mit individuellen Farben.

Parameter
rowZeile.
colSpalte.
cZu zeichnendes Zeichen.
fgVordergrundfarbe.
bgHintergrundfarbe.

Definiert in Zeile 833 der Datei wgrhal_ext.c.

◆ draw_status_bar()

void draw_status_bar ( const char *  text,
uint16_t  bg_color,
uint16_t  fg_color 
)

Zeichnet eine Statusleiste am oberen Displayrand.

Parameter
textAnzuzeigender Text.
bg_colorHintergrundfarbe.
fg_colorTextfarbe.

Definiert in Zeile 888 der Datei wgrhal_ext.c.

◆ free()

void free ( void *  ptr)

Gibt einen zuvor allokierten Speicherblock frei.

Parameter
ptrZeiger auf den Speicherblock.

Definiert in Zeile 598 der Datei wgrhal_ext.c.

◆ heap_free_space()

uint32_t heap_free_space ( void  )

Ermittelt den aktuell freien Heap-Speicher.

Rückgabe
Freier Speicher in Byte.

Definiert in Zeile 533 der Datei wgrhal_ext.c.

◆ malloc()

void * malloc ( uint32_t  size)

Allokiert einen Speicherblock.

Parameter
sizeGröße des benötigten Speichers in Byte.
Rückgabe
Zeiger auf den allokierten Speicher oder NULL bei Fehler.

Definiert in Zeile 563 der Datei wgrhal_ext.c.

◆ mult_calc()

uint32_t mult_calc ( uint32_t  multiplicand,
uint32_t  multiplier 
)

Berechnet das 32-Bit-Ergebnis einer Multiplikation.

Parameter
multiplicandErster Faktor.
multiplierZweiter Faktor.
Rückgabe
Niederwertiger 32-Bit-Teil des Multiplikationsergebnisses.

Definiert in Zeile 41 der Datei wgrhal_ext.c.

◆ mult_calc_64()

uint64_t mult_calc_64 ( uint32_t  multiplicand,
uint32_t  multiplier 
)

Berechnet das 64-Bit-Ergebnis einer Multiplikation.

Parameter
multiplicandErster Faktor.
multiplierZweiter Faktor.
Rückgabe
64-Bit-Ergebnis der Multiplikation.

Definiert in Zeile 27 der Datei wgrhal_ext.c.

◆ print_error()

void print_error ( const char *  label)

Gibt ein Label als Fehlernachricht aus.

Parameter
labelBeschriftung.

Definiert in Zeile 997 der Datei wgrhal_ext.c.

◆ print_ok()

void print_ok ( const char *  label)

Gibt ein Label als OK-Nachricht aus.

Parameter
labelBeschriftung.

Definiert in Zeile 992 der Datei wgrhal_ext.c.

◆ print_ok_res()

void print_ok_res ( const char *  label,
int32_t  value 
)

Gibt ein Label und einen numerischen Wert (als String) aus, farblich als OK markiert.

Parameter
labelBeschriftung.
valueNumerischer Wert.

Definiert in Zeile 984 der Datei wgrhal_ext.c.

◆ pwm_free_note_buffer()

void pwm_free_note_buffer ( void  )

Gibt den für PWM-Noten reservierten Speicher frei.

Definiert in Zeile 463 der Datei wgrhal_ext.c.

◆ pwm_play_note()

void pwm_play_note ( note_t  note,
uint32_t  octave 
)

Spielt eine bestimmte Note in einer festgelegten Oktave über den PWM aus.

Parameter
noteGewünschte Note (note_t).
octaveOktave (z.B. 4).

Definiert in Zeile 424 der Datei wgrhal_ext.c.

◆ pwm_precompute_notes()

int pwm_precompute_notes ( void  )

Berechnet Notenparameter für den PWM-Modus.

Rückgabe
0 bei Erfolg, -1 bei Fehler.

Definiert in Zeile 401 der Datei wgrhal_ext.c.

◆ realloc()

void * realloc ( void *  ptr,
uint32_t  size 
)

Ändert die Größe eines allokierten Speicherblocks.

Parameter
ptrZeiger auf den Speicherblock.
sizeNeue Größe in Byte.
Rückgabe
Zeiger auf den neuen Speicherblock oder NULL bei Fehler.

Definiert in Zeile 635 der Datei wgrhal_ext.c.

◆ spi_automatic_cs()

void spi_automatic_cs ( bool  active)

Aktiviert oder deaktiviert den automatischen Chipselect (CS) der SPI-Schnittstelle.

Parameter
activetrue zum Aktivieren, false zum Deaktivieren.

Definiert in Zeile 123 der Datei wgrhal_ext.c.

◆ spi_cs()

void spi_cs ( uint32_t  active)

Setzt den SPI-Chipselect-Zustand.

Parameter
activeAktiver Zustand (z. B. 0 oder 1).

Definiert in Zeile 137 der Datei wgrhal_ext.c.

◆ spi_disable()

void spi_disable ( void  )

Deaktiviert die SPI-Schnittstelle.

Definiert in Zeile 116 der Datei wgrhal_ext.c.

◆ spi_enable()

void spi_enable ( void  )

Aktiviert die SPI-Schnittstelle.

Definiert in Zeile 109 der Datei wgrhal_ext.c.

◆ spi_fifo_full()

uint32_t spi_fifo_full ( void  )

Prüft, ob das SPI-FIFO voll ist.

Rückgabe
1 wenn voll, sonst 0.

Definiert in Zeile 168 der Datei wgrhal_ext.c.

◆ spi_get_status()

uint32_t spi_get_status ( void  )

Liest den aktuellen Status der SPI-Schnittstelle.

Rückgabe
Statuswert.

Definiert in Zeile 163 der Datei wgrhal_ext.c.

◆ spi_is_busy()

uint32_t spi_is_busy ( void  )

Prüft, ob die SPI-Schnittstelle beschäftigt ist.

Rückgabe
1 wenn beschäftigt, sonst 0.

Definiert in Zeile 178 der Datei wgrhal_ext.c.

◆ spi_is_ready()

uint32_t spi_is_ready ( void  )

Prüft, ob die SPI-Schnittstelle bereit ist.

Rückgabe
1 wenn bereit, sonst 0.

Definiert in Zeile 173 der Datei wgrhal_ext.c.

◆ spi_read_buffer()

int32_t spi_read_buffer ( uint8_t *  buf,
uint32_t  length,
uint32_t  timeout_ms 
)

Liest einen Datenpuffer von der SPI-Schnittstelle.

Parameter
bufZeiger auf den Zielpuffer.
lengthLänge des Puffers.
timeout_msZeitlimit in Millisekunden.
Rückgabe
0 bei Erfolg, -1 bei Fehler.

Definiert in Zeile 284 der Datei wgrhal_ext.c.

◆ spi_read_byte()

int32_t spi_read_byte ( uint8_t *  data,
uint32_t  timeout_ms 
)

Liest ein Byte von der SPI-Schnittstelle.

Parameter
dataZeiger, in den das gelesene Byte gespeichert wird.
timeout_msZeitlimit in Millisekunden.
Rückgabe
0 bei Erfolg, -1 bei Timeout.

Definiert in Zeile 235 der Datei wgrhal_ext.c.

◆ spi_rx_empty()

uint32_t spi_rx_empty ( void  )

Prüft, ob der SPI-Empfangspuffer leer ist.

Rückgabe
1 wenn leer, sonst 0.

Definiert in Zeile 188 der Datei wgrhal_ext.c.

◆ spi_rx_full()

uint32_t spi_rx_full ( void  )

Prüft, ob der SPI-Empfangspuffer voll ist.

Rückgabe
1 wenn voll, sonst 0.

Definiert in Zeile 183 der Datei wgrhal_ext.c.

◆ spi_set_clock_divider()

void spi_set_clock_divider ( uint32_t  divider)

Konfiguriert den Taktteiler der SPI-Schnittstelle.

Parameter
dividerWert des Taktteilers.

Definiert in Zeile 147 der Datei wgrhal_ext.c.

◆ spi_set_clock_offet()

void spi_set_clock_offet ( uint32_t  offset)

Setzt den Takt-Offset der SPI-Schnittstelle.

Parameter
offsetNeuer Offsetwert.

◆ spi_tx_empty()

uint32_t spi_tx_empty ( void  )

Prüft, ob der SPI-Sende-Puffer leer ist.

Rückgabe
1 wenn leer, sonst 0.

Definiert in Zeile 198 der Datei wgrhal_ext.c.

◆ spi_tx_full()

uint32_t spi_tx_full ( void  )

Prüft, ob der SPI-Sende-Puffer voll ist.

Rückgabe
1 wenn voll, sonst 0.

Definiert in Zeile 193 der Datei wgrhal_ext.c.

◆ spi_wait_rx_data()

int32_t spi_wait_rx_data ( uint32_t  timeout_ms)

Wartet darauf, dass Daten im SPI-Empfangspuffer verfügbar sind.

Parameter
timeout_msZeitlimit in Millisekunden.
Rückgabe
0 bei Erfolg, -1 bei Timeout.

Definiert in Zeile 203 der Datei wgrhal_ext.c.

◆ spi_write_buffer()

int32_t spi_write_buffer ( const uint8_t *  buf,
uint32_t  length,
uint32_t  timeout_ms 
)

Sendet einen Datenpuffer über SPI.

Parameter
bufZeiger auf den zu sendenden Puffer.
lengthLänge des Puffers.
timeout_msZeitlimit in Millisekunden.
Rückgabe
0 bei Erfolg, -1 bei Fehler.

Definiert in Zeile 257 der Datei wgrhal_ext.c.

◆ spi_write_byte()

int32_t spi_write_byte ( uint8_t  data,
uint32_t  timeout_ms 
)

Sendet ein Byte über die SPI-Schnittstelle.

Parameter
dataZu sendendes Byte.
timeout_msZeitlimit in Millisekunden.
Rückgabe
0 bei Erfolg, -1 bei Timeout.

Definiert in Zeile 218 der Datei wgrhal_ext.c.

◆ spi_write_uint32()

int32_t spi_write_uint32 ( uint32_t  value,
uint32_t  timeout_ms 
)

Sendet einen 32-Bit-Wert über SPI.

Parameter
valueZu sendender Wert.
timeout_msZeitlimit in Millisekunden.
Rückgabe
0 bei Erfolg, -1 bei Fehler.

Definiert in Zeile 274 der Datei wgrhal_ext.c.

◆ ssd1351_cursor_x()

uint32_t ssd1351_cursor_x ( void  )

Gibt die aktuelle X-Position des Cursors im SSD1351 Terminal zurück.

Rückgabe
X-Koordinate des Cursors.

Definiert in Zeile 1057 der Datei wgrhal_ext.c.

◆ ssd1351_draw_pixel()

void ssd1351_draw_pixel ( uint8_t  x,
uint8_t  y,
uint16_t  color 
)

Zeichnet einen einzelnen Pixel an einer bestimmten Position.

Parameter
xX-Koordinate.
yY-Koordinate.
colorFarbe des Pixels.

Definiert in Zeile 1040 der Datei wgrhal_ext.c.

◆ ssd1351_fill_screen()

void ssd1351_fill_screen ( uint16_t  color)

Füllt das gesamte Display mit einer Farbe.

Parameter
colorZu füllende Farbe.

Definiert in Zeile 1026 der Datei wgrhal_ext.c.

◆ ssd1351_init()

void ssd1351_init ( void  )

Initialisiert das SSD1351 Display.

Definiert in Zeile 796 der Datei wgrhal_ext.c.

◆ ssd1351_inv()

void ssd1351_inv ( void  )

Schaltet den Invertierungsmodus des Displays um.

Definiert in Zeile 741 der Datei wgrhal_ext.c.

◆ ssd1351_send_command()

void ssd1351_send_command ( uint8_t  cmd)

Sendet einen einzelnen Befehl an das SSD1351 Display.

Parameter
cmdBefehlscode.

Definiert in Zeile 763 der Datei wgrhal_ext.c.

◆ ssd1351_send_command_with_data()

void ssd1351_send_command_with_data ( uint8_t  cmd,
const uint8_t *  data,
size_t  len 
)

Sendet einen Befehl mit zugehörigen Daten an das SSD1351 Display.

Parameter
cmdBefehlscode.
dataZeiger auf den Datenpuffer.
lenLänge der Daten in Byte.

Definiert in Zeile 771 der Datei wgrhal_ext.c.

◆ ssd1351_send_commands()

void ssd1351_send_commands ( const uint8_t *  buf,
size_t  len 
)

Sendet eine Folge von Befehlen an das SSD1351 Display.

Parameter
bufZeiger auf den Befehlsbuffer.
lenLänge des Buffers in Byte.

Definiert in Zeile 784 der Datei wgrhal_ext.c.

◆ ssd1351_send_data()

void ssd1351_send_data ( const uint8_t *  data,
size_t  len 
)

Sendet einen Datenpuffer an das SSD1351 Display.

Parameter
dataZeiger auf den Datenpuffer.
lenLänge des Puffers in Byte.

Definiert in Zeile 755 der Datei wgrhal_ext.c.

◆ ssd1351_set_position()

void ssd1351_set_position ( uint8_t  x,
uint8_t  y,
uint8_t  w,
uint8_t  h 
)

Setzt die Schreibposition und den Bereich im SSD1351 Display.

Parameter
xStartspalte.
yStartzeile.
wBreite des Bereichs.
hHöhe des Bereichs.

Definiert in Zeile 819 der Datei wgrhal_ext.c.

◆ terminal_draw_text()

void terminal_draw_text ( uint8_t  row,
uint8_t  col,
const char *  str,
uint16_t  fg_color,
uint16_t  bg_color 
)

Zeichnet einen Text an einer bestimmten Terminalposition mit definierten Vorder- und Hintergrundfarben.

Parameter
rowZeile.
colSpalte.
strZu zeichnender Text.
fg_colorVordergrundfarbe.
bg_colorHintergrundfarbe.

Definiert in Zeile 1012 der Datei wgrhal_ext.c.

◆ terminal_draw_text_default()

void terminal_draw_text_default ( uint8_t  row,
uint8_t  col,
const char *  str 
)

Zeichnet einen Text an einer bestimmten Terminalposition mit Standardfarben.

Parameter
rowZeile.
colSpalte.
strZu zeichnender Text.

Definiert in Zeile 1021 der Datei wgrhal_ext.c.

◆ terminal_init()

void terminal_init ( void  )

Initialisiert das Terminal (Display) des SSD1351.

Definiert in Zeile 1046 der Datei wgrhal_ext.c.

◆ terminal_native_scroll()

void terminal_native_scroll ( void  )

Scrollt das Terminal um eine Zeile.

Definiert in Zeile 907 der Datei wgrhal_ext.c.

◆ terminal_print()

void terminal_print ( const char *  str)

Gibt einen String im Terminal aus.

Parameter
strZu druckender String.

Definiert in Zeile 968 der Datei wgrhal_ext.c.

◆ terminal_print_col()

void terminal_print_col ( const char *  text,
uint16_t  color 
)

Gibt einen String im Terminal mit einer bestimmten Textfarbe aus.

Parameter
textZu druckender String.
colorTextfarbe.

Definiert in Zeile 976 der Datei wgrhal_ext.c.

◆ terminal_put_char()

void terminal_put_char ( char  c)

Gibt ein einzelnes Zeichen im Terminal aus und aktualisiert den Cursor.

Parameter
cZu druckendes Zeichen.

Definiert in Zeile 934 der Datei wgrhal_ext.c.

◆ terminal_set_bg_color()

void terminal_set_bg_color ( uint16_t  color)

Setzt die Hintergrundfarbe des Terminals.

Parameter
colorNeue Hintergrundfarbe.

Definiert in Zeile 1007 der Datei wgrhal_ext.c.

◆ terminal_set_text_color()

void terminal_set_text_color ( uint16_t  color)

Setzt die Textfarbe des Terminals.

Parameter
colorNeue Textfarbe.

Definiert in Zeile 1002 der Datei wgrhal_ext.c.

◆ ws2812_clear()

void ws2812_clear ( void  )

Schaltet alle WS2812B LEDs aus.

Definiert in Zeile 362 der Datei wgrhal_ext.c.

◆ ws2812_fill()

int32_t ws2812_fill ( rgb_color_t  color)

Füllt alle WS2812B LEDs mit einer einheitlichen Farbe.

Parameter
colorFarbe, mit der alle LEDs gefüllt werden.
Rückgabe
0 bei Erfolg, -1 bei Fehler.

Definiert in Zeile 349 der Datei wgrhal_ext.c.

◆ ws2812_get_color()

rgb_color_t ws2812_get_color ( uint8_t  led)

Liest die aktuell gesetzte Farbe einer WS2812B LED.

Parameter
ledLED-Index (0-7).
Rückgabe
Aktuelle Farbe als rgb_color_t.

Definiert in Zeile 318 der Datei wgrhal_ext.c.

◆ ws2812_set_color()

int32_t ws2812_set_color ( uint8_t  led,
rgb_color_t  color 
)

Setzt die Farbe einer WS2812B LED.

Parameter
ledLED-Index (0-7).
colorNeue Farbe als rgb_color_t.
Rückgabe
0 bei Erfolg, -1 bei ungültigem LED-Index.

Definiert in Zeile 307 der Datei wgrhal_ext.c.

◆ ws2812_write_all()

int32_t ws2812_write_all ( const rgb_color_t  colors[8])

Schreibt die Farben aller 8 WS2812B LEDs.

Parameter
colorsArray von 8 rgb_color_t-Werten.
Rückgabe
0 bei Erfolg, -1 bei Fehler.

Definiert in Zeile 332 der Datei wgrhal_ext.c.

Variablen-Dokumentation

◆ note_freq_halfbase

const uint8_t note_freq_halfbase[12]
extern

Frequenztabelle für Noten (Halbton-Basis).

Definiert in Zeile 387 der Datei wgrhal_ext.c.