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.
[in] | handle | Pointer to button handle:
|
Returns
Status Code:
SL_STATUS_OK
97
of file platform/driver/button/inc/sl_simple_button.h
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.
[in] | handle | Pointer to button handle:
|
Returns
Button State: Current state of the button
SL_SIMPLE_BUTTON_PRESSED
SL_SIMPLE_BUTTON_RELEASED
109
of file platform/driver/button/inc/sl_simple_button.h
sl_simple_button_poll_step
void sl_simple_button_poll_step (const sl_button_t * handle)
Poll the simple button.
[in] | handle | Pointer to button handle:
|
(button mode - poll / poll and debonuce)
117
of file platform/driver/button/inc/sl_simple_button.h
sl_simple_button_enable
void sl_simple_button_enable (const sl_button_t * handle)
Enable the simple button.
[in] | handle | Pointer to button handle:
|
125
of file platform/driver/button/inc/sl_simple_button.h
sl_simple_button_disable
void sl_simple_button_disable (const sl_button_t * handle)
Disable the simple button.
[in] | handle | Pointer to button handle:
|
133
of file platform/driver/button/inc/sl_simple_button.h
Macro Definition Documentation#
SL_SIMPLE_BUTTON_MODE_POLL
#define SL_SIMPLE_BUTTON_MODE_POLLValue:
0U
BUTTON input capture using polling.
58
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_MODE_POLL_AND_DEBOUNCE
#define SL_SIMPLE_BUTTON_MODE_POLL_AND_DEBOUNCEValue:
1U
BUTTON input capture using polling and debouncing.
59
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_MODE_INTERRUPT
#define SL_SIMPLE_BUTTON_MODE_INTERRUPTValue:
2U
BUTTON input capture using interrupt.
60
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_DISABLED
#define SL_SIMPLE_BUTTON_DISABLEDValue:
2U
BUTTON state is disabled.
62
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_PRESSED
#define SL_SIMPLE_BUTTON_PRESSEDValue:
1U
BUTTON state is pressed.
63
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_RELEASED
#define SL_SIMPLE_BUTTON_RELEASEDValue:
0U
BUTTON state is released.
64
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_GET_STATE
#define SL_SIMPLE_BUTTON_GET_STATEValue:
(context)
BUTTON member function to get state.
66
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_GET_PORT
#define SL_SIMPLE_BUTTON_GET_PORTValue:
(context)
BUTTON member function to get port.
67
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_GET_PIN
#define SL_SIMPLE_BUTTON_GET_PINValue:
(context)
BUTTON member function to get pin.
68
of file platform/driver/button/inc/sl_simple_button.h
SL_SIMPLE_BUTTON_GET_MODE
#define SL_SIMPLE_BUTTON_GET_MODEValue:
(context)
BUTTON member function to get mode.
69
of file platform/driver/button/inc/sl_simple_button.h