Merge pull request #4253 from tannewt/rp2040_fix_pwm_reuse

Fix second shared PWM
This commit is contained in:
Scott Shawcroft 2021-02-26 11:53:54 -08:00 committed by GitHub
commit 2e6e91dc5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 1 deletions

View File

@ -143,6 +143,7 @@ pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
common_hal_pwmio_pwmout_set_frequency(self, frequency); common_hal_pwmio_pwmout_set_frequency(self, frequency);
pwm_set_enabled(slice, true); pwm_set_enabled(slice, true);
} else { } else {
common_hal_pwmio_pwmout_set_frequency(self, frequency);
common_hal_pwmio_pwmout_set_duty_cycle(self, duty); common_hal_pwmio_pwmout_set_duty_cycle(self, duty);
} }
@ -163,7 +164,7 @@ void common_hal_pwmio_pwmout_deinit(pwmio_pwmout_obj_t* self) {
uint32_t channel_mask = _mask(self->slice, self->channel); uint32_t channel_mask = _mask(self->slice, self->channel);
channel_use &= ~channel_mask; channel_use &= ~channel_mask;
never_reset_channel &= ~channel_mask; never_reset_channel &= ~channel_mask;
uint32_t slice_mask = ((1 << CHANNELS_PER_SLICE) - 1) << (self->slice * CHANNELS_PER_SLICE + self->channel); uint32_t slice_mask = ((1 << CHANNELS_PER_SLICE) - 1) << (self->slice * CHANNELS_PER_SLICE);
if ((channel_use & slice_mask) == 0) { if ((channel_use & slice_mask) == 0) {
target_slice_frequencies[self->slice] = 0; target_slice_frequencies[self->slice] = 0;
slice_variable_frequency &= ~(1 << self->slice); slice_variable_frequency &= ~(1 << self->slice);