FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
MultiButton/multi_button.h at master · xiaoe1999/MultiButton · GitHub
xiaoe1999
/
MultiButton
Public
forked from
0x1abin/MultiButton
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
MultiButton
/
multi_button.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
62 lines (51 loc) · 1.32 KB
Breadcrumbs
MultiButton
/
multi_button.h
Copy path
File metadata and controls
62 lines (51 loc) · 1.32 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
* Copyright (c) 2016 Zibin Zheng <znbin@qq.com>
* All rights reserved
*/
#ifndef
_MULTI_BUTTON_H_
#define
_MULTI_BUTTON_H_
#include
"stdint.h"
#include
"string.h"
//According to your need to modify the constants.
#define
TICKS_INTERVAL
5 //ms
#define
DEBOUNCE_TICKS
3 //MAX 8
#define
SHORT_TICKS
(300 /TICKS_INTERVAL)
#define
LONG_TICKS
(1000 /TICKS_INTERVAL)
typedef
void
(
*
BtnCallback
)(
void
*
);
typedef
enum
{
PRESS_DOWN
=
0
,
PRESS_UP
,
PRESS_REPEAT
,
SINGLE_CLICK
,
DOUBLE_CLICK
,
LONG_PRESS_START
,
LONG_PRESS_HOLD
,
number_of_event
,
NONE_PRESS
}
PressEvent
;
typedef
struct
Button
{
uint16_t
ticks
;
uint8_t
repeat
:
4
;
uint8_t
event
:
4
;
uint8_t
state
:
3
;
uint8_t
debounce_cnt
:
3
;
uint8_t
active_level
:
1
;
uint8_t
button_level
:
1
;
uint8_t
button_id
;
uint8_t
(
*
hal_button_Level
)(
uint8_t
button_id_
);
BtnCallback
cb
[
number_of_event
];
struct
Button
*
next
;
}
Button
;
#ifdef
__cplusplus
extern
"C"
{
#endif
void
button_init
(
struct
Button
*
handle
,
uint8_t
(
*
pin_level
)(
uint8_t
),
uint8_t
active_level
,
uint8_t
button_id
);
void
button_attach
(
struct
Button
*
handle
,
PressEvent
event
,
BtnCallback
cb
);
PressEvent
get_button_event
(
struct
Button
*
handle
);
int
button_start
(
struct
Button
*
handle
);
void
button_stop
(
struct
Button
*
handle
);
void
button_ticks
(
void
);
#ifdef
__cplusplus
}
#endif
#endif
Back
|
FazBrowse Home
|
New Git URL