LibDriver MULTI_BUTTON
Loading...
Searching...
No Matches
driver_multi_button_basic.c
Go to the documentation of this file.
1
36
37
#include "
driver_multi_button_basic.h
"
38
39
static
multi_button_handle_t
gs_handle;
40
51
uint8_t
multi_button_basic_init
(uint8_t row, uint8_t col,
void
(*callback)(uint16_t row, uint16_t col,
multi_button_t
*data))
52
{
53
uint8_t res;
54
55
/* link interface function */
56
DRIVER_MULTI_BUTTON_LINK_INIT
(&gs_handle,
multi_button_handle_t
);
57
DRIVER_MULTI_BUTTON_LINK_MATRIX_INIT
(&gs_handle,
multi_button_interface_matrix_init
);
58
DRIVER_MULTI_BUTTON_LINK_MATRIX_DEINIT
(&gs_handle,
multi_button_interface_matrix_deinit
);
59
DRIVER_MULTI_BUTTON_LINK_MATRIX_WRITE_ROW
(&gs_handle,
multi_button_interface_matrix_write_row
);
60
DRIVER_MULTI_BUTTON_LINK_MATRIX_READ_ROW
(&gs_handle,
multi_button_interface_matrix_read_row
);
61
DRIVER_MULTI_BUTTON_LINK_TIMESTAMP_READ
(&gs_handle,
multi_button_interface_timestamp_read
);
62
DRIVER_MULTI_BUTTON_LINK_DELAY_MS
(&gs_handle,
multi_button_interface_delay_ms
);
63
DRIVER_MULTI_BUTTON_LINK_DEBUG_PRINT
(&gs_handle,
multi_button_interface_debug_print
);
64
DRIVER_MULTI_BUTTON_LINK_RECEIVE_CALLBACK
(&gs_handle, callback);
65
66
/* init */
67
res =
multi_button_init
(&gs_handle, row, col);
68
if
(res != 0)
69
{
70
multi_button_interface_debug_print
(
"multi_button: init failed.\n"
);
71
72
return
1;
73
}
74
75
/* set default timeout */
76
res =
multi_button_set_timeout
(&gs_handle,
MULTI_BUTTON_BASIC_DEFAULT_TIMEOUT
);
77
if
(res != 0)
78
{
79
multi_button_interface_debug_print
(
"multi_button: set timeout failed.\n"
);
80
(void)
multi_button_deinit
(&gs_handle);
81
82
return
1;
83
}
84
85
/* set default interval */
86
res =
multi_button_set_interval
(&gs_handle,
MULTI_BUTTON_BASIC_DEFAULT_INTERVAL
);
87
if
(res != 0)
88
{
89
multi_button_interface_debug_print
(
"multi_button: set interval failed.\n"
);
90
(void)
multi_button_deinit
(&gs_handle);
91
92
return
1;
93
}
94
95
/* set default short time */
96
res =
multi_button_set_short_time
(&gs_handle,
MULTI_BUTTON_BASIC_DEFAULT_SHORT_TIME
);
97
if
(res != 0)
98
{
99
multi_button_interface_debug_print
(
"multi_button: set short time failed.\n"
);
100
(void)
multi_button_deinit
(&gs_handle);
101
102
return
1;
103
}
104
105
/* set default long time */
106
res =
multi_button_set_long_time
(&gs_handle,
MULTI_BUTTON_BASIC_DEFAULT_LONG_TIME
);
107
if
(res != 0)
108
{
109
multi_button_interface_debug_print
(
"multi_button: set long time failed.\n"
);
110
(void)
multi_button_deinit
(&gs_handle);
111
112
return
1;
113
}
114
115
/* set default repeat time */
116
res =
multi_button_set_repeat_time
(&gs_handle,
MULTI_BUTTON_BASIC_DEFAULT_REPEAT_TIME
);
117
if
(res != 0)
118
{
119
multi_button_interface_debug_print
(
"multi_button: set repeat time failed.\n"
);
120
(void)
multi_button_deinit
(&gs_handle);
121
122
return
1;
123
}
124
125
/* set default repeat cnt */
126
res =
multi_button_set_repeat_cnt
(&gs_handle,
MULTI_BUTTON_BASIC_DEFAULT_REPEAT_CNT
);
127
if
(res != 0)
128
{
129
multi_button_interface_debug_print
(
"multi_button: set repeat cnt failed.\n"
);
130
(void)
multi_button_deinit
(&gs_handle);
131
132
return
1;
133
}
134
135
/* set default set period */
136
res =
multi_button_set_period
(&gs_handle,
MULTI_BUTTON_BASIC_DEFAULT_PERIOD
);
137
if
(res != 0)
138
{
139
multi_button_interface_debug_print
(
"multi_button: set period failed.\n"
);
140
(void)
multi_button_deinit
(&gs_handle);
141
142
return
1;
143
}
144
145
return
0;
146
}
147
155
uint8_t
multi_button_basic_deinit
(
void
)
156
{
157
if
(
multi_button_deinit
(&gs_handle) != 0)
158
{
159
return
1;
160
}
161
162
return
0;
163
}
164
169
void
multi_button_basic_process
(
void
)
170
{
171
/* process */
172
(void)
multi_button_process
(&gs_handle);
173
}
driver_multi_button_basic.h
driver multi_button basic header file
multi_button_init
uint8_t multi_button_init(multi_button_handle_t *handle, uint8_t row, uint8_t col)
initialize the chip
Definition
driver_multi_button.c:618
multi_button_process
uint8_t multi_button_process(multi_button_handle_t *handle)
process
Definition
driver_multi_button.c:546
multi_button_deinit
uint8_t multi_button_deinit(multi_button_handle_t *handle)
close the chip
Definition
driver_multi_button.c:756
multi_button_handle_t
struct multi_button_handle_s multi_button_handle_t
multi_button handle structure definition
multi_button_set_short_time
uint8_t multi_button_set_short_time(multi_button_handle_t *handle, uint32_t us)
set short time
Definition
driver_multi_button.c:895
multi_button_set_long_time
uint8_t multi_button_set_long_time(multi_button_handle_t *handle, uint32_t us)
set long time
Definition
driver_multi_button.c:947
multi_button_set_repeat_time
uint8_t multi_button_set_repeat_time(multi_button_handle_t *handle, uint32_t us)
set repeat time
Definition
driver_multi_button.c:999
multi_button_set_repeat_cnt
uint8_t multi_button_set_repeat_cnt(multi_button_handle_t *handle, uint32_t cnt)
set repeat cnt
Definition
driver_multi_button.c:1051
multi_button_set_period
uint8_t multi_button_set_period(multi_button_handle_t *handle, uint32_t period)
set period
Definition
driver_multi_button.c:1103
multi_button_t
struct multi_button_s multi_button_t
multi_button structure definition
multi_button_set_timeout
uint8_t multi_button_set_timeout(multi_button_handle_t *handle, uint32_t us)
set timeout
Definition
driver_multi_button.c:791
multi_button_set_interval
uint8_t multi_button_set_interval(multi_button_handle_t *handle, uint32_t us)
set interval
Definition
driver_multi_button.c:843
MULTI_BUTTON_BASIC_DEFAULT_PERIOD
#define MULTI_BUTTON_BASIC_DEFAULT_PERIOD
Definition
driver_multi_button_basic.h:62
MULTI_BUTTON_BASIC_DEFAULT_LONG_TIME
#define MULTI_BUTTON_BASIC_DEFAULT_LONG_TIME
Definition
driver_multi_button_basic.h:59
multi_button_basic_process
void multi_button_basic_process(void)
basic example process
Definition
driver_multi_button_basic.c:169
multi_button_basic_deinit
uint8_t multi_button_basic_deinit(void)
basic example deinit
Definition
driver_multi_button_basic.c:155
MULTI_BUTTON_BASIC_DEFAULT_REPEAT_TIME
#define MULTI_BUTTON_BASIC_DEFAULT_REPEAT_TIME
Definition
driver_multi_button_basic.h:60
MULTI_BUTTON_BASIC_DEFAULT_REPEAT_CNT
#define MULTI_BUTTON_BASIC_DEFAULT_REPEAT_CNT
Definition
driver_multi_button_basic.h:61
MULTI_BUTTON_BASIC_DEFAULT_SHORT_TIME
#define MULTI_BUTTON_BASIC_DEFAULT_SHORT_TIME
Definition
driver_multi_button_basic.h:58
MULTI_BUTTON_BASIC_DEFAULT_TIMEOUT
#define MULTI_BUTTON_BASIC_DEFAULT_TIMEOUT
multi_button basic example default definition
Definition
driver_multi_button_basic.h:56
multi_button_basic_init
uint8_t multi_button_basic_init(uint8_t row, uint8_t col, void(*callback)(uint16_t row, uint16_t col, multi_button_t *data))
basic example init
Definition
driver_multi_button_basic.c:51
MULTI_BUTTON_BASIC_DEFAULT_INTERVAL
#define MULTI_BUTTON_BASIC_DEFAULT_INTERVAL
Definition
driver_multi_button_basic.h:57
multi_button_interface_matrix_init
uint8_t multi_button_interface_matrix_init(void)
interface matrix init
Definition
driver_multi_button_interface_template.c:46
multi_button_interface_matrix_write_row
uint8_t multi_button_interface_matrix_write_row(uint16_t num, uint8_t level)
interface matrix write row
Definition
driver_multi_button_interface_template.c:72
multi_button_interface_debug_print
void multi_button_interface_debug_print(const char *const fmt,...)
interface print format data
Definition
driver_multi_button_interface_template.c:118
multi_button_interface_timestamp_read
uint8_t multi_button_interface_timestamp_read(multi_button_time_t *t)
interface timestamp read
Definition
driver_multi_button_interface_template.c:98
multi_button_interface_matrix_read_row
uint8_t multi_button_interface_matrix_read_row(uint32_t *col_array)
interface matrix read row
Definition
driver_multi_button_interface_template.c:85
multi_button_interface_delay_ms
void multi_button_interface_delay_ms(uint32_t ms)
interface delay ms
Definition
driver_multi_button_interface_template.c:108
multi_button_interface_matrix_deinit
uint8_t multi_button_interface_matrix_deinit(void)
interface matrix deinit
Definition
driver_multi_button_interface_template.c:58
DRIVER_MULTI_BUTTON_LINK_MATRIX_WRITE_ROW
#define DRIVER_MULTI_BUTTON_LINK_MATRIX_WRITE_ROW(HANDLE, FUC)
link matrix_write_row function
Definition
driver_multi_button.h:223
DRIVER_MULTI_BUTTON_LINK_DEBUG_PRINT
#define DRIVER_MULTI_BUTTON_LINK_DEBUG_PRINT(HANDLE, FUC)
link debug_print function
Definition
driver_multi_button.h:255
DRIVER_MULTI_BUTTON_LINK_MATRIX_INIT
#define DRIVER_MULTI_BUTTON_LINK_MATRIX_INIT(HANDLE, FUC)
link matrix_init function
Definition
driver_multi_button.h:207
DRIVER_MULTI_BUTTON_LINK_MATRIX_DEINIT
#define DRIVER_MULTI_BUTTON_LINK_MATRIX_DEINIT(HANDLE, FUC)
link matrix_deinit function
Definition
driver_multi_button.h:215
DRIVER_MULTI_BUTTON_LINK_RECEIVE_CALLBACK
#define DRIVER_MULTI_BUTTON_LINK_RECEIVE_CALLBACK(HANDLE, FUC)
link receive_callback function
Definition
driver_multi_button.h:263
DRIVER_MULTI_BUTTON_LINK_TIMESTAMP_READ
#define DRIVER_MULTI_BUTTON_LINK_TIMESTAMP_READ(HANDLE, FUC)
link timestamp_read function
Definition
driver_multi_button.h:239
DRIVER_MULTI_BUTTON_LINK_MATRIX_READ_ROW
#define DRIVER_MULTI_BUTTON_LINK_MATRIX_READ_ROW(HANDLE, FUC)
link matrix_read_row function
Definition
driver_multi_button.h:231
DRIVER_MULTI_BUTTON_LINK_DELAY_MS
#define DRIVER_MULTI_BUTTON_LINK_DELAY_MS(HANDLE, FUC)
link delay_ms function
Definition
driver_multi_button.h:247
DRIVER_MULTI_BUTTON_LINK_INIT
#define DRIVER_MULTI_BUTTON_LINK_INIT(HANDLE, STRUCTURE)
initialize multi_button_handle_t structure
Definition
driver_multi_button.h:199
example
driver_multi_button_basic.c
Generated by
1.15.0