This is the documentation for the latest (main) development branch. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

SEG_LCD

Introduction

The segment LCD, also known as segmented LCD (Liquid Crystal Display), is a common type of LCD that consists of multiple independent segments or “segments,” each of which can independently control the display of different characters or graphics.

Function List

This module is divided into two tiers of functionality: the lower-level driver functions and the higher-level GDC0689 device driver functions based on the driver layer.

Driver Layer Function List

  • Supports COM/SEG type LCD screens with a maximum of 8 COM x 32 SEG;

  • Supports various refresh modes like Static, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8 duty;

  • Supports bias voltages like Static, 1/2, 1/3, 1/4 bias;

  • LCD refresh rates can be dynamically configured.

GDC0689 Device Driver Layer Function List

  • Digital display: 6-digit integer or decimal display

  • Time display: Hour and minute display

  • Unit display: “mV” (millivolt), “N” (Newton), “m” (meter), “kg” (kilogram), “g” (gram), “mm” (millimeter), με (microstrain), “kPa” (kilopascal), “MPa” (megapascal), “℃” (Celsius)

  • Icon display: Service icons, power level icons, signal level icons

  • Display all elements

  • Clear display

Function Overview

This module mainly displays time, digits, units, and icons on the GDC0689 segmented LCD.

Hardware Configuration

seg_lcd Configuration (pre-configured)

Configured by modifying the DT (Device Tree).

gdc0689 Configuration (pre-configured)

Configured by modifying the DT (Device Tree).

Main Functions

Time Display Function

Prerequisites:

  • Initialize gdc0689 before use

Relevant Sequence API:

  • Call wm_gdc0689_init to initialize gdc0689

  • Call wm_gdc0689_display_time to display the current time on the segmented LCD

Result:

  • Time is displayed on the segmented LCD

Number Display Function

Prerequisites:

  • Initialize gdc0689 before use

Relevant Sequence API:

  • Call wm_gdc0689_init to initialize gdc0689

  • Call wm_gdc0689_display_integer to display integer values on the segmented LCD

  • Call wm_gdc0689_display_decimal to display decimal values on the segmented LCD

Result:

  • Numbers are displayed on the segmented LCD

Unit Display Function

Prerequisites:

  • Initialize gdc0689 before use

Relevant Sequence API:

  • Call wm_gdc0689_init to initialize gdc0689

  • Call wm_gdc0689_display_unit to display measurement units on the segmented LCD

Result:

  • Units are displayed on the segmented LCD

Icon Display Function

Prerequisites:

  • Initialize gdc0689 before use

Relevant Sequence API:

  • Call wm_gdc0689_init to initialize gdc0689

  • Call wm_gdc0689_display_service_icon to display the service icon on the segmented LCD

  • Call wm_gdc0689_display_battery_level to display battery level on the segmented LCD

  • Call wm_gdc0689_display_signal_level to display signal strength on the segmented LCD

Result:

  • Icons are displayed on the segmented LCD

Notes

1. DT configuration must be set according to the actual parameters of the segmented LCD.
2. If using a non-GDC0689 segmented LCD, the device driver must be developed based on the seg_lcd driver, referring to the gdc0689 device driver and the segmented LCD datasheet.

Application Example

API Reference

The API is divided into two parts: one part is the seg_lcd controller driver layer API, and the other part is the GDC0689 device driver API based on the seg_lcd controller driver layer.