Skip to content

File syn_seg7.h

FileList > display > syn_seg7.h

Go to the source code of this file

7-Segment LED Display & Multi-Digit Array Driver.

  • #include "../common/syn_defs.h"
  • #include "../port/syn_port_gpio.h"
  • #include <stdbool.h>
  • #include <stddef.h>
  • #include <stdint.h>

Classes

Type Name
struct SYN_Seg7
7-Segment Display Instance Context.

Public Types

Type Name
enum SYN_Seg7Type
7-segment display wiring polarity.

Public Functions

Type Name
void syn_seg7_clear (SYN_Seg7 * seg)
Clear display (turn off all segments).
SYN_Status syn_seg7_init (SYN_Seg7 * seg, const SYN_GPIO_Pin segments, const SYN_GPIO_Pin * digits, uint8_t num_digits, SYN_Seg7Type type)
Initialize a 7-Segment Display instance.
void syn_seg7_print_float (SYN_Seg7 * seg, float val, uint8_t decimals)
Display a floating-point number with specified decimal precision.
void syn_seg7_print_hex (SYN_Seg7 * seg, uint32_t val)
Display an integer in hexadecimal format.
void syn_seg7_print_int (SYN_Seg7 * seg, int32_t val)
Display an integer number.
void syn_seg7_print_str (SYN_Seg7 * seg, const char * str)
Display a text string (best-effort 7-segment ASCII mapping).
void syn_seg7_scan (SYN_Seg7 * seg)
Non-blocking multiplex scan tick. Call periodically in main/scheduler loop.
void syn_seg7_set_digit_raw (SYN_Seg7 * seg, uint8_t digit_idx, uint8_t seg_mask)
Set raw segment bitmask for a specific digit.

Macros

Type Name
define SYN_SEG7_MAX_DIGITS 8

Public Types Documentation

enum SYN_Seg7Type

7-segment display wiring polarity.

enum SYN_Seg7Type {
    SYN_SEG7_COMMON_CATHODE = 0,
    SYN_SEG7_COMMON_ANODE = 1
};


Public Functions Documentation

function syn_seg7_clear

Clear display (turn off all segments).

void syn_seg7_clear (
    SYN_Seg7 * seg
) 

Parameters:

  • seg 7-segment context.

function syn_seg7_init

Initialize a 7-Segment Display instance.

SYN_Status syn_seg7_init (
    SYN_Seg7 * seg,
    const SYN_GPIO_Pin segments,
    const SYN_GPIO_Pin * digits,
    uint8_t num_digits,
    SYN_Seg7Type type
) 

Parameters:

  • seg 7-segment context.
  • segments Array of 8 segment GPIO pins (A, B, C, D, E, F, G, DP).
  • digits Array of digit selector GPIO pins (up to 8).
  • num_digits Number of digits in the array (1 to 8).
  • type Wiring type (Common Cathode / Common Anode).

Returns:

SYN_OK on success.


function syn_seg7_print_float

Display a floating-point number with specified decimal precision.

void syn_seg7_print_float (
    SYN_Seg7 * seg,
    float val,
    uint8_t decimals
) 

Parameters:

  • seg 7-segment context.
  • val Float value to display.
  • decimals Number of fractional digits after decimal point.

function syn_seg7_print_hex

Display an integer in hexadecimal format.

void syn_seg7_print_hex (
    SYN_Seg7 * seg,
    uint32_t val
) 

Parameters:

  • seg 7-segment context.
  • val Unsigned integer to display in hex.

function syn_seg7_print_int

Display an integer number.

void syn_seg7_print_int (
    SYN_Seg7 * seg,
    int32_t val
) 

Parameters:

  • seg 7-segment context.
  • val Signed integer value to display.

function syn_seg7_print_str

Display a text string (best-effort 7-segment ASCII mapping).

void syn_seg7_print_str (
    SYN_Seg7 * seg,
    const char * str
) 

Parameters:

  • seg 7-segment context.
  • str ASCII string.

function syn_seg7_scan

Non-blocking multiplex scan tick. Call periodically in main/scheduler loop.

void syn_seg7_scan (
    SYN_Seg7 * seg
) 

Parameters:

  • seg 7-segment context.

function syn_seg7_set_digit_raw

Set raw segment bitmask for a specific digit.

void syn_seg7_set_digit_raw (
    SYN_Seg7 * seg,
    uint8_t digit_idx,
    uint8_t seg_mask
) 

Parameters:

  • seg 7-segment context.
  • digit_idx Digit index (0 to num_digits-1).
  • seg_mask Raw segment bitmask (Bit 0=A, Bit 1=B, ..., Bit 7=DP).

Macro Definition Documentation

define SYN_SEG7_MAX_DIGITS

#define SYN_SEG7_MAX_DIGITS `8`


The documentation for this class was generated from the following file src/syntropic/display/syn_seg7.h