1#[derive(Copy, Clone, Debug)]
2pub struct DeadtimeConfig {
3 pub(crate) prescaler: DeadtimePrescaler,
5
6 pub(crate) deadtime_rising_value: u16,
8
9 pub(crate) deadtime_rising_sign: bool,
11
12 pub(crate) deadtime_falling_value: u16,
14
15 pub(crate) deadtime_falling_sign: bool,
17}
18
19impl DeadtimeConfig {
20 pub fn prescaler(mut self, value: DeadtimePrescaler) -> Self {
22 self.prescaler = value;
23 self
24 }
25
26 pub fn deadtime_rising_value(mut self, value: u16) -> Self {
28 assert!(value < (1 << 9));
30
31 self.deadtime_rising_value = value;
32
33 self
34 }
35
36 pub fn deadtime_rising_sign(mut self, is_negative: bool) -> Self {
37 self.deadtime_rising_sign = is_negative;
38 self
39 }
40
41 pub fn deadtime_falling_value(mut self, value: u16) -> Self {
43 assert!(value < (1 << 9));
45
46 self.deadtime_falling_value = value;
47
48 self
49 }
50
51 pub fn deadtime_falling_sign(mut self, is_negative: bool) -> Self {
52 self.deadtime_falling_sign = is_negative;
53 self
54 }
55}
56
57impl Default for DeadtimeConfig {
58 fn default() -> Self {
59 Self {
60 prescaler: DeadtimePrescaler::Thrtim,
61 deadtime_rising_value: 170, deadtime_rising_sign: false,
63 deadtime_falling_value: 170, deadtime_falling_sign: false,
65 }
66 }
67}
68
69#[derive(Copy, Clone, Debug)]
70pub enum DeadtimePrescaler {
71 ThrtimDiv8 = 0b000,
72 ThrtimDiv4 = 0b001,
73 ThrtimDiv2 = 0b010,
74 Thrtim = 0b011,
75 ThrtimMul2 = 0b100,
76 ThrtimMul4 = 0b101,
77 ThrtimMul8 = 0b110,
78 ThrtimMul16 = 0b111,
79}