Skip to content

Commit f2dd719

Browse files
authored
Merge pull request #59 from bdlucas1/main
Correct PWM frequency prescale computation
2 parents fcc8ced + b683f99 commit f2dd719

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

adafruit_pca9685.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,11 +166,11 @@ def frequency(self) -> float:
166166
raise ValueError(
167167
"The device pre_scale register (0xFE) was not read or returned a value < 3"
168168
)
169-
return self.reference_clock_speed / 4096 / prescale_result
169+
return self.reference_clock_speed / 4096 / (prescale_result + 1)
170170

171171
@frequency.setter
172172
def frequency(self, freq: float) -> None:
173-
prescale = int(self.reference_clock_speed / 4096.0 / freq + 0.5)
173+
prescale = int(self.reference_clock_speed / 4096.0 / freq + 0.5) - 1
174174
if prescale < 3:
175175
raise ValueError("PCA9685 cannot output at the given frequency")
176176
old_mode = self.mode1_reg # Mode 1

0 commit comments

Comments
 (0)