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
// The following is defined to remove a case where bindgen can't handle pcnt_unit_t being defined
// in two different C namespaces (enum vs struct). The struct is opaque (used only as a pointer to an
// opaque type via pcnt_channel_handle_t), so we use the enum definition here, taken from the v4
// bindgen.
/// Selection of all available PCNT units
pub type pcnt_unit_t = c_int;
/// PCNT unit 0
pub const pcnt_unit_t_PCNT_UNIT_0: pcnt_unit_t = 0;
/// PCNT unit 1
pub const pcnt_unit_t_PCNT_UNIT_1: pcnt_unit_t = 1;
/// PCNT unit 2
pub const pcnt_unit_t_PCNT_UNIT_2: pcnt_unit_t = 2;
/// PCNT unit 3
pub const pcnt_unit_t_PCNT_UNIT_3: pcnt_unit_t = 3;
// Ideally, we'd use a conditional off of SOC_PCNT_UNITS_PER_GROUP, but that's not possible in Rust.
// Today, ESP32 is the only chip that has 8 units. All others have 4 (except ESP32-C3, which doesn't
// have PCNT at all). For new chips, check $IDF_PATH/components/soc/$CHIP/include/soc/soc_caps.h for
// for the value of SOC_PCNT_UNITS_PER_GROUP.
/// PCNT unit 4
pub const pcnt_unit_t_PCNT_UNIT_4: pcnt_unit_t = 4;
/// PCNT unit 5
pub const pcnt_unit_t_PCNT_UNIT_5: pcnt_unit_t = 5;
/// PCNT unit 6
pub const pcnt_unit_t_PCNT_UNIT_6: pcnt_unit_t = 6;
/// PCNT unit 7
pub const pcnt_unit_t_PCNT_UNIT_7: pcnt_unit_t = 7;
// For some reason, this isn't defined in soc_caps.h for ESP32-H2 on ESP-IDF v4.x
/// Maximum number of PCNT units
pub const pcnt_unit_t_PCNT_UNIT_MAX: pcnt_unit_t = crateSOC_PCNT_UNITS_PER_GROUP as pcnt_unit_t;
/// Maximum number of PCNT units
pub const pcnt_unit_t_PCNT_UNIT_MAX: pcnt_unit_t = 4;