Simple Button Driver
Simple Button Driver module provides APIs to initalize and read simple buttons. Subsequent sections provide more insight into button driver configuration and usage.
Introduction#
The Simple Button driver is a module of the button driver that provides the functionality to initialize and read simple buttons.
Simple Button Configuration
Simple buttons use the sl_button_t struct and their sl_simple_button_context_t struct. These are automatically generated into the following files, as well as instance specific headers with macro definitions in them. The samples below are for a single instance called "inst0".
// sl_simple_button_instances.c
#include "sl_simple_button.h"
#include "sl_simple_button_inst0_config.h"
sl_simple_button_context_t simple_inst0_context = {
.state = 0,
.history = 0,
.port = SL_SIMPLE_BUTTON_INST0_PORT,
.pin = SL_SIMPLE_BUTTON_INST0_PIN,
.mode = SL_SIMPLE_BUTTON_INST0_MODE,
};
const sl_button_t sl_button_inst0 = {
.context = &simple_inst0_context,
.init = sl_simple_button_init,
.get_state = sl_simple_button_get_state,
.poll = sl_simple_button_poll_step,
};
const sl_button_t *sl_simple_button_array[] = {&sl_button_inst0};
const uint8_t simple_button_count = 1;
void sl_simple_button_init_instances(void)
{
sl_button_init(&sl_button_inst0);
}
void sl_simple_button_poll_instances(void)
{
sl_button_poll_step(&sl_button_inst0);
}
Note
The sl_simple_button_instances.c file is shown with only one instance, but if more were in use they would all appear in this .c file.
// sl_simple_button_instances.h
#ifndef SL_SIMPLE_BUTTON_INSTANCES_H
#define SL_SIMPLE_BUTTON_INSTANCES_H
#include "sl_simple_button.h"
extern const sl_button_t sl_button_inst0;
void sl_simple_button_init_instances(void);
void sl_simple_button_poll_instances(void);
#endif // SL_SIMPLE_BUTTON_INSTANCES_H
Note
The sl_simple_button_instances.h file is shown with only one instance, but if more were in use they would all appear in this .h file.
Simple Button Usage
The simple button driver has no differences in its usage from the common button driver. See Usage.
Modules#
Functions#
Initialize the simple button driver.
Get the current state of the simple button.
Poll the simple button.
Enable the simple button.
Disable the simple button.
Macros#
BUTTON input capture using polling.
BUTTON input capture using polling and debouncing.
BUTTON input capture using interrupt.
BUTTON state is disabled.
BUTTON state is pressed.
BUTTON state is released.
BUTTON member function to get state.
BUTTON member function to get port.
BUTTON member function to get pin.
BUTTON member function to get mode.
Function Documentation#
sl_simple_button_init
sl_status_t sl_simple_button_init (const sl_button_t * handle)
Initialize the simple button driver.
Type | Direction | Argument Name | Description |
---|---|---|---|
const sl_button_t * | [in] | handle | Pointer to button handle:
|
Returns
Status Code:
SL_STATUS_OK
sl_simple_button_get_state
sl_button_state_t sl_simple_button_get_state (const sl_button_t * handle)
Get the current state of the simple button.
Type | Direction | Argument Name | Description |
---|---|---|---|
const sl_button_t * | [in] | handle | Pointer to button handle:
|
Returns
Button State: Current state of the button
SL_SIMPLE_BUTTON_PRESSED
SL_SIMPLE_BUTTON_RELEASED
sl_simple_button_poll_step
void sl_simple_button_poll_step (const sl_button_t * handle)
Poll the simple button.
Type | Direction | Argument Name | Description |
---|---|---|---|
const sl_button_t * | [in] | handle | Pointer to button handle:
|
(button mode - poll / poll and debonuce)
sl_simple_button_enable
void sl_simple_button_enable (const sl_button_t * handle)
Enable the simple button.
Type | Direction | Argument Name | Description |
---|---|---|---|
const sl_button_t * | [in] | handle | Pointer to button handle:
|
sl_simple_button_disable
void sl_simple_button_disable (const sl_button_t * handle)
Disable the simple button.
Type | Direction | Argument Name | Description |
---|---|---|---|
const sl_button_t * | [in] | handle | Pointer to button handle:
|