diff --git a/adafruit_pca9685.py b/adafruit_pca9685.py index 1aca414..8e9b211 100755 --- a/adafruit_pca9685.py +++ b/adafruit_pca9685.py @@ -166,11 +166,11 @@ def frequency(self) -> float: raise ValueError( "The device pre_scale register (0xFE) was not read or returned a value < 3" ) - return self.reference_clock_speed / 4096 / prescale_result + return self.reference_clock_speed / 4096 / (prescale_result + 1) @frequency.setter def frequency(self, freq: float) -> None: - prescale = int(self.reference_clock_speed / 4096.0 / freq + 0.5) + prescale = int(self.reference_clock_speed / 4096.0 / freq + 0.5) - 1 if prescale < 3: raise ValueError("PCA9685 cannot output at the given frequency") old_mode = self.mode1_reg # Mode 1