LibDriver BUTTON
Loading...
Searching...
No Matches
driver_button_basic.c
Go to the documentation of this file.
1
36
37
#include "
driver_button_basic.h
"
38
39
static
button_handle_t
gs_handle;
40
50
uint8_t
button_basic_irq_handler
(uint8_t press_release)
51
{
52
if
(
button_irq_handler
(&gs_handle, press_release) != 0)
53
{
54
return
1;
55
}
56
else
57
{
58
return
0;
59
}
60
}
61
69
uint8_t
button_basic_period_handler
(
void
)
70
{
71
if
(
button_period_handler
(&gs_handle) != 0)
72
{
73
return
1;
74
}
75
76
return
0;
77
}
78
87
uint8_t
button_basic_init
(
void
(*callback)(
button_t
*data))
88
{
89
uint8_t res;
90
91
/* link interface function */
92
DRIVER_BUTTON_LINK_INIT
(&gs_handle,
button_handle_t
);
93
DRIVER_BUTTON_LINK_TIMESTAMP_READ
(&gs_handle,
button_interface_timestamp_read
);
94
DRIVER_BUTTON_LINK_DELAY_MS
(&gs_handle,
button_interface_delay_ms
);
95
DRIVER_BUTTON_LINK_DEBUG_PRINT
(&gs_handle,
button_interface_debug_print
);
96
DRIVER_BUTTON_LINK_RECEIVE_CALLBACK
(&gs_handle, callback);
97
98
/* init */
99
res =
button_init
(&gs_handle);
100
if
(res != 0)
101
{
102
button_interface_debug_print
(
"button: init failed.\n"
);
103
104
return
1;
105
}
106
107
/* set default timeout */
108
res =
button_set_timeout
(&gs_handle,
BUTTON_BASIC_DEFAULT_TIMEOUT
);
109
if
(res != 0)
110
{
111
button_interface_debug_print
(
"button: set timeout failed.\n"
);
112
(void)
button_deinit
(&gs_handle);
113
114
return
1;
115
}
116
117
/* set default interval */
118
res =
button_set_interval
(&gs_handle,
BUTTON_BASIC_DEFAULT_INTERVAL
);
119
if
(res != 0)
120
{
121
button_interface_debug_print
(
"button: set interval failed.\n"
);
122
(void)
button_deinit
(&gs_handle);
123
124
return
1;
125
}
126
127
/* set default short time */
128
res =
button_set_short_time
(&gs_handle,
BUTTON_BASIC_DEFAULT_SHORT_TIME
);
129
if
(res != 0)
130
{
131
button_interface_debug_print
(
"button: set short time failed.\n"
);
132
(void)
button_deinit
(&gs_handle);
133
134
return
1;
135
}
136
137
/* set default long time */
138
res =
button_set_long_time
(&gs_handle,
BUTTON_BASIC_DEFAULT_LONG_TIME
);
139
if
(res != 0)
140
{
141
button_interface_debug_print
(
"button: set long time failed.\n"
);
142
(void)
button_deinit
(&gs_handle);
143
144
return
1;
145
}
146
147
/* set default repeat time */
148
res =
button_set_repeat_time
(&gs_handle,
BUTTON_BASIC_DEFAULT_REPEAT_TIME
);
149
if
(res != 0)
150
{
151
button_interface_debug_print
(
"button: set repeat time failed.\n"
);
152
(void)
button_deinit
(&gs_handle);
153
154
return
1;
155
}
156
157
return
0;
158
}
159
167
uint8_t
button_basic_deinit
(
void
)
168
{
169
if
(
button_deinit
(&gs_handle) != 0)
170
{
171
return
1;
172
}
173
174
return
0;
175
}
driver_button_basic.h
driver button basic header file
button_deinit
uint8_t button_deinit(button_handle_t *handle)
close the chip
Definition
driver_button.c:544
button_set_repeat_time
uint8_t button_set_repeat_time(button_handle_t *handle, uint32_t us)
set repeat time
Definition
driver_button.c:778
button_irq_handler
uint8_t button_irq_handler(button_handle_t *handle, uint8_t press_release)
irq handler
Definition
driver_button.c:360
button_handle_t
struct button_handle_s button_handle_t
button handle structure definition
button_init
uint8_t button_init(button_handle_t *handle)
initialize the chip
Definition
driver_button.c:487
button_set_timeout
uint8_t button_set_timeout(button_handle_t *handle, uint32_t us)
set timeout
Definition
driver_button.c:570
button_set_short_time
uint8_t button_set_short_time(button_handle_t *handle, uint32_t us)
set short time
Definition
driver_button.c:674
button_period_handler
uint8_t button_period_handler(button_handle_t *handle)
period handler
Definition
driver_button.c:108
button_t
struct button_s button_t
button structure definition
button_set_long_time
uint8_t button_set_long_time(button_handle_t *handle, uint32_t us)
set long time
Definition
driver_button.c:726
button_set_interval
uint8_t button_set_interval(button_handle_t *handle, uint32_t us)
set interval
Definition
driver_button.c:622
BUTTON_BASIC_DEFAULT_REPEAT_TIME
#define BUTTON_BASIC_DEFAULT_REPEAT_TIME
Definition
driver_button_basic.h:60
BUTTON_BASIC_DEFAULT_SHORT_TIME
#define BUTTON_BASIC_DEFAULT_SHORT_TIME
Definition
driver_button_basic.h:58
button_basic_init
uint8_t button_basic_init(void(*callback)(button_t *data))
basic example init
Definition
driver_button_basic.c:87
button_basic_irq_handler
uint8_t button_basic_irq_handler(uint8_t press_release)
basic irq
Definition
driver_button_basic.c:50
BUTTON_BASIC_DEFAULT_TIMEOUT
#define BUTTON_BASIC_DEFAULT_TIMEOUT
button basic example default definition
Definition
driver_button_basic.h:56
button_basic_period_handler
uint8_t button_basic_period_handler(void)
basic period
Definition
driver_button_basic.c:69
BUTTON_BASIC_DEFAULT_LONG_TIME
#define BUTTON_BASIC_DEFAULT_LONG_TIME
Definition
driver_button_basic.h:59
button_basic_deinit
uint8_t button_basic_deinit(void)
basic example deinit
Definition
driver_button_basic.c:167
BUTTON_BASIC_DEFAULT_INTERVAL
#define BUTTON_BASIC_DEFAULT_INTERVAL
Definition
driver_button_basic.h:57
button_interface_delay_ms
void button_interface_delay_ms(uint32_t ms)
interface delay ms
Definition
driver_button_interface_template.c:57
button_interface_timestamp_read
uint8_t button_interface_timestamp_read(button_time_t *t)
interface timestamp read
Definition
driver_button_interface_template.c:47
button_interface_debug_print
void button_interface_debug_print(const char *const fmt,...)
interface print format data
Definition
driver_button_interface_template.c:67
DRIVER_BUTTON_LINK_DEBUG_PRINT
#define DRIVER_BUTTON_LINK_DEBUG_PRINT(HANDLE, FUC)
link debug_print function
Definition
driver_button.h:197
DRIVER_BUTTON_LINK_INIT
#define DRIVER_BUTTON_LINK_INIT(HANDLE, STRUCTURE)
initialize button_handle_t structure
Definition
driver_button.h:173
DRIVER_BUTTON_LINK_DELAY_MS
#define DRIVER_BUTTON_LINK_DELAY_MS(HANDLE, FUC)
link delay_ms function
Definition
driver_button.h:189
DRIVER_BUTTON_LINK_RECEIVE_CALLBACK
#define DRIVER_BUTTON_LINK_RECEIVE_CALLBACK(HANDLE, FUC)
link receive_callback function
Definition
driver_button.h:205
DRIVER_BUTTON_LINK_TIMESTAMP_READ
#define DRIVER_BUTTON_LINK_TIMESTAMP_READ(HANDLE, FUC)
link timestamp_read function
Definition
driver_button.h:181
example
driver_button_basic.c
Generated by
1.15.0