LED Driver
Description
Generic LED Driver.
Introduction
The LED driver is a platfom level software module that manages the control of various types of LEDs. There are currently two types of LEDs supported by the LED driver:
The common LED functions are called through the generic LED driver, while other functions specific to a certain type of LED are called directly through their own driver.
Configuration
All LED instances are configured with an sl_led_t struct and a type specific context struct, and sometimes additional structs. There is also a typedef sl_led_state_t to get the state of an LED. These structs are automatically generated after an LED is set up using Simplicity Studio's wizard, along with a function definition for initializing all LEDs of that type. Specific setups for the various LED types are in the following sections.
Usage
Once the LED structs are defined, the common LED functions can be called being passed an instance of sl_led_t , which will be redirected to calling the type specific version of that function. The common functions include the following:
These functions allow for initializing the LED, turning it on and off, toggling it, and getting the current on/off state of it. Other functions are called through the specific type of LED's API directly. The usages of the different types of LEDs are described in detail in the following sections.
Modules |
|
Simple LED Driver | |
Simple LED Driver can be used to execute basic LED functionalities such as on, off, toggle, or retrive the on/off status on Silicon Labs devices. Subsequent sections provide more insight into this module.
|
|
Simple RGB PWM LED Driver | |
Simple Red/Green/Blue PWM LED Driver.
|
|
Simple RGBW PWM LED Driver | |
Data Structures |
|
struct | sl_led_t |
A LED instance.
|
|
Functions |
|
sl_status_t | sl_led_init (const sl_led_t *led_handle) |
Initialize the LED driver.
|
|
void | sl_led_turn_on (const sl_led_t *led_handle) |
Turn on the LED.
|
|
void | sl_led_turn_off (const sl_led_t *led_handle) |
Turn off the LED.
|
|
void | sl_led_toggle (const sl_led_t *led_handle) |
Toggle the LED.
|
|
sl_led_state_t | sl_led_get_state (const sl_led_t *led_handle) |
Get the current state of the LED.
|
|
Macros |
|
#define | SL_LED_CURRENT_STATE_OFF 0U |
LED state off.
|
|
#define | SL_LED_CURRENT_STATE_ON 1U |
LED state on.
|
|
Typedefs |
|
typedef uint8_t | sl_led_state_t |
LED state.
|
|
Function Documentation
◆ sl_led_init()
sl_status_t sl_led_init | ( | const sl_led_t * |
led_handle
|
) |
Initialize the LED driver.
Call this function before any other LED function. Initializes the selected LED GPIO, mode, and polarity.
- Parameters
-
[in] led_handle
Pointer to instance of sl_led_t to initialize
- Returns
-
Status Code:
- SL_STATUS_OK
◆ sl_led_turn_on()
void sl_led_turn_on | ( | const sl_led_t * |
led_handle
|
) |
Turn on the LED.
- Parameters
-
[in] led_handle
Pointer to instance of sl_led_t to turn on
◆ sl_led_turn_off()
void sl_led_turn_off | ( | const sl_led_t * |
led_handle
|
) |
Turn off the LED.
- Parameters
-
[in] led_handle
Pointer to instance of sl_led_t to turn off
◆ sl_led_toggle()
void sl_led_toggle | ( | const sl_led_t * |
led_handle
|
) |
Toggle the LED.
Turn it on if it is off, and off if it is on.
- Parameters
-
[in] led_handle
Pointer to instance of sl_led_t to toggle
◆ sl_led_get_state()
sl_led_state_t sl_led_get_state | ( | const sl_led_t * |
led_handle
|
) |
Get the current state of the LED.
- Parameters
-
[in] led_handle
Pointer to instance of sl_led_t to check
- Returns
- sl_led_state_t Current state of LED. 1 for on, 0 for off
Macro Definition Documentation
◆ SL_LED_CURRENT_STATE_OFF
#define SL_LED_CURRENT_STATE_OFF 0U |
LED state off.
◆ SL_LED_CURRENT_STATE_ON
#define SL_LED_CURRENT_STATE_ON 1U |
LED state on.
Typedef Documentation
◆ sl_led_state_t
typedef uint8_t sl_led_state_t |
LED state.