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 |
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.
#define CHAR_HEIGHT 8 |
Höhe eines Zeichens in Pixel.
Definiert in Zeile 577 der Datei wgrhal_ext.h.
#define CHAR_WIDTH 6 |
Breite eines Zeichens in Pixel.
Definiert in Zeile 573 der Datei wgrhal_ext.h.
#define COLOR_BLACK 0x0000 |
Farbe: Schwarz.
Definiert in Zeile 606 der Datei wgrhal_ext.h.
#define COLOR_BLUE 0x001F |
Farbe: Blau.
Definiert in Zeile 622 der Datei wgrhal_ext.h.
#define COLOR_CYAN 0x07FF |
Farbe: Cyan.
Definiert in Zeile 634 der Datei wgrhal_ext.h.
#define COLOR_GREEN 0xF800 |
Farbe: Grün.
Definiert in Zeile 618 der Datei wgrhal_ext.h.
#define COLOR_MAGENTA 0xF81F |
Farbe: Magenta.
Definiert in Zeile 630 der Datei wgrhal_ext.h.
#define COLOR_RED 0x07E0 |
Farbe: Rot.
Definiert in Zeile 614 der Datei wgrhal_ext.h.
#define COLOR_WHITE 0xFFFF |
Farbe: Weiß.
Definiert in Zeile 610 der Datei wgrhal_ext.h.
#define COLOR_YELLOW 0xFFE0 |
Farbe: Gelb.
Definiert in Zeile 626 der Datei wgrhal_ext.h.
#define DIV_BASE_ADDR 0x00000600 |
Basisadresse für den Hardware-Divider.
Definiert in Zeile 47 der Datei wgrhal_ext.h.
#define DIV_END_OFFSET 0x04 |
Offset für den Dividend.
Definiert in Zeile 55 der Datei wgrhal_ext.h.
#define DIV_INFO_OFFSET 0x00 |
Offset für das Informationsregister des Dividers.
Definiert in Zeile 51 der Datei wgrhal_ext.h.
#define DIV_QUO_OFFSET 0x0C |
Offset für den Quotienten.
Definiert in Zeile 63 der Datei wgrhal_ext.h.
#define DIV_REM_OFFSET 0x10 |
Offset für den Rest.
Definiert in Zeile 67 der Datei wgrhal_ext.h.
#define DIV_SOR_OFFSET 0x08 |
Offset für den Divisor.
Definiert in Zeile 59 der Datei wgrhal_ext.h.
#define HOUSEKEEPING_MS 250 |
Intervall für Display-Housekeeping in Millisekunden.
Definiert in Zeile 601 der Datei wgrhal_ext.h.
#define HWREG32 | ( | addr | ) | (*((volatile uint32_t *)(addr))) |
Definiert in Zeile 16 der Datei wgrhal_ext.h.
#define MUL1_OFFSET 0x0004 |
Offset für den ersten Multiplikanden.
Definiert in Zeile 30 der Datei wgrhal_ext.h.
#define MUL2_OFFSET 0x0008 |
Offset für den zweiten Multiplikanden.
Definiert in Zeile 34 der Datei wgrhal_ext.h.
#define MULT_BASE_ADDR 0x00000500 |
Basisadresse für den Hardware-Multiplikator.
Definiert in Zeile 22 der Datei wgrhal_ext.h.
#define MULT_INFO_OFFSET 0x0000 |
Offset für das Informationsregister des Multiplikators.
Definiert in Zeile 26 der Datei wgrhal_ext.h.
#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.
#define RESL_OFFSET 0x0010 |
Offset für die niederwertigen 32-Bit des 64-Bit-Ergebnisses.
Definiert in Zeile 42 der Datei wgrhal_ext.h.
#define SPI_BASE_ADDR 0x00000700 |
Basisadresse für die SPI-Schnittstelle.
Definiert in Zeile 72 der Datei wgrhal_ext.h.
#define SPI_CLK_OFFSET 0x0004 |
Offset für das SPI-Taktregister.
Definiert in Zeile 80 der Datei wgrhal_ext.h.
#define SPI_CS_OFFSET 0x0014 |
Offset für die SPI-Chipselect-Steuerung.
Definiert in Zeile 96 der Datei wgrhal_ext.h.
#define SPI_CTRL_OFFSET 0x0000 |
Offset für das SPI-Steuerregister.
Definiert in Zeile 76 der Datei wgrhal_ext.h.
#define SPI_RX_OFFSET 0x0010 |
Offset für das SPI-Empfangsregister.
Definiert in Zeile 92 der Datei wgrhal_ext.h.
#define SPI_STATUS_OFFSET 0x0008 |
Offset für das SPI-Statusregister.
Definiert in Zeile 84 der Datei wgrhal_ext.h.
#define SPI_TX_OFFSET 0x000C |
Offset für das SPI-Sende-Register.
Definiert in Zeile 88 der Datei wgrhal_ext.h.
#define SSD1351_HEIGHT 128 |
Höhe des SSD1351 Displays in Pixel.
Definiert in Zeile 569 der Datei wgrhal_ext.h.
#define SSD1351_SPI_TIMEOUT 10 |
SPI-Zeitlimit in Millisekunden für das Display.
Definiert in Zeile 597 der Datei wgrhal_ext.h.
#define SSD1351_WIDTH 128 |
Breite des SSD1351 Displays in Pixel.
Definiert in Zeile 565 der Datei wgrhal_ext.h.
#define STATUS_BAR_ROWS 1 |
Anzahl der Zeilen für die Statusleiste.
Definiert in Zeile 581 der Datei wgrhal_ext.h.
#define TERM_COLS (SSD1351_WIDTH / CHAR_WIDTH) |
Anzahl der Spalten im Terminal.
Definiert in Zeile 589 der Datei wgrhal_ext.h.
#define TERM_ROWS (TOTAL_ROWS) |
Anzahl der Zeilen im Terminal.
Definiert in Zeile 593 der Datei wgrhal_ext.h.
#define TOTAL_ROWS (SSD1351_HEIGHT / CHAR_HEIGHT) |
Gesamte Anzahl der Textzeilen auf dem Display.
Definiert in Zeile 585 der Datei wgrhal_ext.h.
#define WS_BASE_ADDR 0x00000900 |
Basisadresse für die WS2812B LED-Steuerung.
Definiert in Zeile 101 der Datei wgrhal_ext.h.
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.
void * calloc | ( | uint32_t | nmemb, |
uint32_t | size | ||
) |
Allokiert einen Speicherblock für ein Array und initialisiert diesen mit 0.
nmemb | Anzahl der Elemente. |
size | Größe eines Elements in Byte. |
Definiert in Zeile 662 der Datei wgrhal_ext.c.
void clear_terminal | ( | void | ) |
Löscht das gesamte Terminal.
Definiert in Zeile 878 der Datei wgrhal_ext.c.
void clear_terminal_row | ( | uint8_t | row | ) |
Löscht eine bestimmte Terminalzeile.
row | Zu löschende Zeile. |
Definiert in Zeile 870 der Datei wgrhal_ext.c.
int32_t div_calc | ( | uint32_t | dividend, |
uint32_t | divisor, | ||
div_result_t * | result | ||
) |
Führt eine Division durch und liefert Quotient und Rest.
dividend | Dividend. |
divisor | Divisor. |
result | Zeiger auf eine div_result_t-Struktur, in der Quotient und Rest gespeichert werden. |
Definiert in Zeile 52 der Datei wgrhal_ext.c.
uint32_t div_calc_quotient | ( | uint32_t | dividend, |
uint32_t | divisor | ||
) |
Berechnet den Quotienten einer Division.
dividend | Dividend. |
divisor | Divisor. |
Definiert in Zeile 71 der Datei wgrhal_ext.c.
uint32_t div_calc_remainder | ( | uint32_t | dividend, |
uint32_t | divisor | ||
) |
Berechnet den Rest einer Division.
dividend | Dividend. |
divisor | Divisor. |
Definiert in Zeile 87 der Datei wgrhal_ext.c.
void draw_char_cell | ( | uint8_t | row, |
uint8_t | col, | ||
char | c | ||
) |
Zeichnet ein einzelnes Zeichen in einer Terminalzelle.
row | Zeile. |
col | Spalte. |
c | Zu zeichnendes Zeichen. |
Definiert in Zeile 865 der Datei wgrhal_ext.c.
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.
row | Zeile. |
col | Spalte. |
c | Zu zeichnendes Zeichen. |
fg | Vordergrundfarbe. |
bg | Hintergrundfarbe. |
Definiert in Zeile 833 der Datei wgrhal_ext.c.
void draw_status_bar | ( | const char * | text, |
uint16_t | bg_color, | ||
uint16_t | fg_color | ||
) |
Zeichnet eine Statusleiste am oberen Displayrand.
text | Anzuzeigender Text. |
bg_color | Hintergrundfarbe. |
fg_color | Textfarbe. |
Definiert in Zeile 888 der Datei wgrhal_ext.c.
void free | ( | void * | ptr | ) |
Gibt einen zuvor allokierten Speicherblock frei.
ptr | Zeiger auf den Speicherblock. |
Definiert in Zeile 598 der Datei wgrhal_ext.c.
uint32_t heap_free_space | ( | void | ) |
Ermittelt den aktuell freien Heap-Speicher.
Definiert in Zeile 533 der Datei wgrhal_ext.c.
void * malloc | ( | uint32_t | size | ) |
Allokiert einen Speicherblock.
size | Größe des benötigten Speichers in Byte. |
Definiert in Zeile 563 der Datei wgrhal_ext.c.
uint32_t mult_calc | ( | uint32_t | multiplicand, |
uint32_t | multiplier | ||
) |
Berechnet das 32-Bit-Ergebnis einer Multiplikation.
multiplicand | Erster Faktor. |
multiplier | Zweiter Faktor. |
Definiert in Zeile 41 der Datei wgrhal_ext.c.
uint64_t mult_calc_64 | ( | uint32_t | multiplicand, |
uint32_t | multiplier | ||
) |
Berechnet das 64-Bit-Ergebnis einer Multiplikation.
multiplicand | Erster Faktor. |
multiplier | Zweiter Faktor. |
Definiert in Zeile 27 der Datei wgrhal_ext.c.
void print_error | ( | const char * | label | ) |
Gibt ein Label als Fehlernachricht aus.
label | Beschriftung. |
Definiert in Zeile 997 der Datei wgrhal_ext.c.
void print_ok | ( | const char * | label | ) |
Gibt ein Label als OK-Nachricht aus.
label | Beschriftung. |
Definiert in Zeile 992 der Datei wgrhal_ext.c.
void print_ok_res | ( | const char * | label, |
int32_t | value | ||
) |
Gibt ein Label und einen numerischen Wert (als String) aus, farblich als OK markiert.
label | Beschriftung. |
value | Numerischer Wert. |
Definiert in Zeile 984 der Datei wgrhal_ext.c.
void pwm_free_note_buffer | ( | void | ) |
Gibt den für PWM-Noten reservierten Speicher frei.
Definiert in Zeile 463 der Datei wgrhal_ext.c.
void pwm_play_note | ( | note_t | note, |
uint32_t | octave | ||
) |
Spielt eine bestimmte Note in einer festgelegten Oktave über den PWM aus.
note | Gewünschte Note (note_t). |
octave | Oktave (z.B. 4). |
Definiert in Zeile 424 der Datei wgrhal_ext.c.
int pwm_precompute_notes | ( | void | ) |
Berechnet Notenparameter für den PWM-Modus.
Definiert in Zeile 401 der Datei wgrhal_ext.c.
void * realloc | ( | void * | ptr, |
uint32_t | size | ||
) |
Ändert die Größe eines allokierten Speicherblocks.
ptr | Zeiger auf den Speicherblock. |
size | Neue Größe in Byte. |
Definiert in Zeile 635 der Datei wgrhal_ext.c.
void spi_automatic_cs | ( | bool | active | ) |
Aktiviert oder deaktiviert den automatischen Chipselect (CS) der SPI-Schnittstelle.
active | true zum Aktivieren, false zum Deaktivieren. |
Definiert in Zeile 123 der Datei wgrhal_ext.c.
void spi_cs | ( | uint32_t | active | ) |
Setzt den SPI-Chipselect-Zustand.
active | Aktiver Zustand (z. B. 0 oder 1). |
Definiert in Zeile 137 der Datei wgrhal_ext.c.
void spi_disable | ( | void | ) |
Deaktiviert die SPI-Schnittstelle.
Definiert in Zeile 116 der Datei wgrhal_ext.c.
void spi_enable | ( | void | ) |
Aktiviert die SPI-Schnittstelle.
Definiert in Zeile 109 der Datei wgrhal_ext.c.
uint32_t spi_fifo_full | ( | void | ) |
Prüft, ob das SPI-FIFO voll ist.
Definiert in Zeile 168 der Datei wgrhal_ext.c.
uint32_t spi_get_status | ( | void | ) |
Liest den aktuellen Status der SPI-Schnittstelle.
Definiert in Zeile 163 der Datei wgrhal_ext.c.
uint32_t spi_is_busy | ( | void | ) |
Prüft, ob die SPI-Schnittstelle beschäftigt ist.
Definiert in Zeile 178 der Datei wgrhal_ext.c.
uint32_t spi_is_ready | ( | void | ) |
Prüft, ob die SPI-Schnittstelle bereit ist.
Definiert in Zeile 173 der Datei wgrhal_ext.c.
int32_t spi_read_buffer | ( | uint8_t * | buf, |
uint32_t | length, | ||
uint32_t | timeout_ms | ||
) |
Liest einen Datenpuffer von der SPI-Schnittstelle.
buf | Zeiger auf den Zielpuffer. |
length | Länge des Puffers. |
timeout_ms | Zeitlimit in Millisekunden. |
Definiert in Zeile 284 der Datei wgrhal_ext.c.
int32_t spi_read_byte | ( | uint8_t * | data, |
uint32_t | timeout_ms | ||
) |
Liest ein Byte von der SPI-Schnittstelle.
data | Zeiger, in den das gelesene Byte gespeichert wird. |
timeout_ms | Zeitlimit in Millisekunden. |
Definiert in Zeile 235 der Datei wgrhal_ext.c.
uint32_t spi_rx_empty | ( | void | ) |
Prüft, ob der SPI-Empfangspuffer leer ist.
Definiert in Zeile 188 der Datei wgrhal_ext.c.
uint32_t spi_rx_full | ( | void | ) |
Prüft, ob der SPI-Empfangspuffer voll ist.
Definiert in Zeile 183 der Datei wgrhal_ext.c.
void spi_set_clock_divider | ( | uint32_t | divider | ) |
Konfiguriert den Taktteiler der SPI-Schnittstelle.
divider | Wert des Taktteilers. |
Definiert in Zeile 147 der Datei wgrhal_ext.c.
void spi_set_clock_offet | ( | uint32_t | offset | ) |
Setzt den Takt-Offset der SPI-Schnittstelle.
offset | Neuer Offsetwert. |
uint32_t spi_tx_empty | ( | void | ) |
Prüft, ob der SPI-Sende-Puffer leer ist.
Definiert in Zeile 198 der Datei wgrhal_ext.c.
uint32_t spi_tx_full | ( | void | ) |
Prüft, ob der SPI-Sende-Puffer voll ist.
Definiert in Zeile 193 der Datei wgrhal_ext.c.
int32_t spi_wait_rx_data | ( | uint32_t | timeout_ms | ) |
Wartet darauf, dass Daten im SPI-Empfangspuffer verfügbar sind.
timeout_ms | Zeitlimit in Millisekunden. |
Definiert in Zeile 203 der Datei wgrhal_ext.c.
int32_t spi_write_buffer | ( | const uint8_t * | buf, |
uint32_t | length, | ||
uint32_t | timeout_ms | ||
) |
Sendet einen Datenpuffer über SPI.
buf | Zeiger auf den zu sendenden Puffer. |
length | Länge des Puffers. |
timeout_ms | Zeitlimit in Millisekunden. |
Definiert in Zeile 257 der Datei wgrhal_ext.c.
int32_t spi_write_byte | ( | uint8_t | data, |
uint32_t | timeout_ms | ||
) |
Sendet ein Byte über die SPI-Schnittstelle.
data | Zu sendendes Byte. |
timeout_ms | Zeitlimit in Millisekunden. |
Definiert in Zeile 218 der Datei wgrhal_ext.c.
int32_t spi_write_uint32 | ( | uint32_t | value, |
uint32_t | timeout_ms | ||
) |
Sendet einen 32-Bit-Wert über SPI.
value | Zu sendender Wert. |
timeout_ms | Zeitlimit in Millisekunden. |
Definiert in Zeile 274 der Datei wgrhal_ext.c.
uint32_t ssd1351_cursor_x | ( | void | ) |
Gibt die aktuelle X-Position des Cursors im SSD1351 Terminal zurück.
Definiert in Zeile 1057 der Datei wgrhal_ext.c.
void ssd1351_draw_pixel | ( | uint8_t | x, |
uint8_t | y, | ||
uint16_t | color | ||
) |
Zeichnet einen einzelnen Pixel an einer bestimmten Position.
x | X-Koordinate. |
y | Y-Koordinate. |
color | Farbe des Pixels. |
Definiert in Zeile 1040 der Datei wgrhal_ext.c.
void ssd1351_fill_screen | ( | uint16_t | color | ) |
Füllt das gesamte Display mit einer Farbe.
color | Zu füllende Farbe. |
Definiert in Zeile 1026 der Datei wgrhal_ext.c.
void ssd1351_init | ( | void | ) |
Initialisiert das SSD1351 Display.
Definiert in Zeile 796 der Datei wgrhal_ext.c.
void ssd1351_inv | ( | void | ) |
Schaltet den Invertierungsmodus des Displays um.
Definiert in Zeile 741 der Datei wgrhal_ext.c.
void ssd1351_send_command | ( | uint8_t | cmd | ) |
Sendet einen einzelnen Befehl an das SSD1351 Display.
cmd | Befehlscode. |
Definiert in Zeile 763 der Datei wgrhal_ext.c.
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.
cmd | Befehlscode. |
data | Zeiger auf den Datenpuffer. |
len | Länge der Daten in Byte. |
Definiert in Zeile 771 der Datei wgrhal_ext.c.
void ssd1351_send_commands | ( | const uint8_t * | buf, |
size_t | len | ||
) |
Sendet eine Folge von Befehlen an das SSD1351 Display.
buf | Zeiger auf den Befehlsbuffer. |
len | Länge des Buffers in Byte. |
Definiert in Zeile 784 der Datei wgrhal_ext.c.
void ssd1351_send_data | ( | const uint8_t * | data, |
size_t | len | ||
) |
Sendet einen Datenpuffer an das SSD1351 Display.
data | Zeiger auf den Datenpuffer. |
len | Länge des Puffers in Byte. |
Definiert in Zeile 755 der Datei wgrhal_ext.c.
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.
x | Startspalte. |
y | Startzeile. |
w | Breite des Bereichs. |
h | Höhe des Bereichs. |
Definiert in Zeile 819 der Datei wgrhal_ext.c.
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.
row | Zeile. |
col | Spalte. |
str | Zu zeichnender Text. |
fg_color | Vordergrundfarbe. |
bg_color | Hintergrundfarbe. |
Definiert in Zeile 1012 der Datei wgrhal_ext.c.
void terminal_draw_text_default | ( | uint8_t | row, |
uint8_t | col, | ||
const char * | str | ||
) |
Zeichnet einen Text an einer bestimmten Terminalposition mit Standardfarben.
row | Zeile. |
col | Spalte. |
str | Zu zeichnender Text. |
Definiert in Zeile 1021 der Datei wgrhal_ext.c.
void terminal_init | ( | void | ) |
Initialisiert das Terminal (Display) des SSD1351.
Definiert in Zeile 1046 der Datei wgrhal_ext.c.
void terminal_native_scroll | ( | void | ) |
Scrollt das Terminal um eine Zeile.
Definiert in Zeile 907 der Datei wgrhal_ext.c.
void terminal_print | ( | const char * | str | ) |
Gibt einen String im Terminal aus.
str | Zu druckender String. |
Definiert in Zeile 968 der Datei wgrhal_ext.c.
void terminal_print_col | ( | const char * | text, |
uint16_t | color | ||
) |
Gibt einen String im Terminal mit einer bestimmten Textfarbe aus.
text | Zu druckender String. |
color | Textfarbe. |
Definiert in Zeile 976 der Datei wgrhal_ext.c.
void terminal_put_char | ( | char | c | ) |
Gibt ein einzelnes Zeichen im Terminal aus und aktualisiert den Cursor.
c | Zu druckendes Zeichen. |
Definiert in Zeile 934 der Datei wgrhal_ext.c.
void terminal_set_bg_color | ( | uint16_t | color | ) |
Setzt die Hintergrundfarbe des Terminals.
color | Neue Hintergrundfarbe. |
Definiert in Zeile 1007 der Datei wgrhal_ext.c.
void terminal_set_text_color | ( | uint16_t | color | ) |
Setzt die Textfarbe des Terminals.
color | Neue Textfarbe. |
Definiert in Zeile 1002 der Datei wgrhal_ext.c.
void ws2812_clear | ( | void | ) |
Schaltet alle WS2812B LEDs aus.
Definiert in Zeile 362 der Datei wgrhal_ext.c.
int32_t ws2812_fill | ( | rgb_color_t | color | ) |
Füllt alle WS2812B LEDs mit einer einheitlichen Farbe.
color | Farbe, mit der alle LEDs gefüllt werden. |
Definiert in Zeile 349 der Datei wgrhal_ext.c.
rgb_color_t ws2812_get_color | ( | uint8_t | led | ) |
Liest die aktuell gesetzte Farbe einer WS2812B LED.
led | LED-Index (0-7). |
Definiert in Zeile 318 der Datei wgrhal_ext.c.
int32_t ws2812_set_color | ( | uint8_t | led, |
rgb_color_t | color | ||
) |
Setzt die Farbe einer WS2812B LED.
led | LED-Index (0-7). |
color | Neue Farbe als rgb_color_t. |
Definiert in Zeile 307 der Datei wgrhal_ext.c.
int32_t ws2812_write_all | ( | const rgb_color_t | colors[8] | ) |
Schreibt die Farben aller 8 WS2812B LEDs.
colors | Array von 8 rgb_color_t-Werten. |
Definiert in Zeile 332 der Datei wgrhal_ext.c.
|
extern |
Frequenztabelle für Noten (Halbton-Basis).
Definiert in Zeile 387 der Datei wgrhal_ext.c.