diff options
| -rw-r--r-- | embassy-nrf/src/pwm.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/embassy-nrf/src/pwm.rs b/embassy-nrf/src/pwm.rs index 2f0397632..197ba640c 100644 --- a/embassy-nrf/src/pwm.rs +++ b/embassy-nrf/src/pwm.rs | |||
| @@ -47,6 +47,7 @@ pub enum Error { | |||
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | const MAX_SEQUENCE_LEN: usize = 32767; | 49 | const MAX_SEQUENCE_LEN: usize = 32767; |
| 50 | pub const PWM_CLK_HZ: u32 = 16_000_000; | ||
| 50 | 51 | ||
| 51 | impl<'d, T: Instance> SequencePwm<'d, T> { | 52 | impl<'d, T: Instance> SequencePwm<'d, T> { |
| 52 | /// Create a new 1-channel PWM | 53 | /// Create a new 1-channel PWM |
| @@ -788,7 +789,7 @@ impl<'d, T: Instance> SimplePwm<'d, T> { | |||
| 788 | /// Sets the PWM output frequency. | 789 | /// Sets the PWM output frequency. |
| 789 | #[inline(always)] | 790 | #[inline(always)] |
| 790 | pub fn set_period(&self, freq: u32) { | 791 | pub fn set_period(&self, freq: u32) { |
| 791 | let clk = 16_000_000u32 >> (self.prescaler() as u8); | 792 | let clk = PWM_CLK_HZ >> (self.prescaler() as u8); |
| 792 | let duty = clk / freq; | 793 | let duty = clk / freq; |
| 793 | self.set_max_duty(duty.min(32767) as u16); | 794 | self.set_max_duty(duty.min(32767) as u16); |
| 794 | } | 795 | } |
| @@ -796,7 +797,7 @@ impl<'d, T: Instance> SimplePwm<'d, T> { | |||
| 796 | /// Returns the PWM output frequency. | 797 | /// Returns the PWM output frequency. |
| 797 | #[inline(always)] | 798 | #[inline(always)] |
| 798 | pub fn period(&self) -> u32 { | 799 | pub fn period(&self) -> u32 { |
| 799 | let clk = 16_000_000u32 >> (self.prescaler() as u8); | 800 | let clk = PWM_CLK_HZ >> (self.prescaler() as u8); |
| 800 | let max_duty = self.max_duty() as u32; | 801 | let max_duty = self.max_duty() as u32; |
| 801 | clk / max_duty | 802 | clk / max_duty |
| 802 | } | 803 | } |
