Skip to content

Commit 8d5788a

Browse files
Merge pull request #21 from jposada202020/changing_assertions
removing assert statements
2 parents c563bab + dcf6fc7 commit 8d5788a

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

adafruit_si5351.py

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,11 @@ def _configure_registers(self, p1, p2, p3):
169169
self._si5351._write_u8(_SI5351_REGISTER_177_PLL_RESET, (1 << 7) | (1 << 5))
170170

171171
def configure_integer(self, multiplier):
172-
"""Configure the PLL with a simple integer mulitplier for the most
172+
"""Configure the PLL with a simple integer multiplier for the most
173173
accurate (but more limited) PLL frequency generation.
174174
"""
175-
assert 14 < multiplier < 91
175+
if multiplier >= 91 or multiplier <= 14:
176+
raise Exception("Multiplier must be in range 14 to 91.")
176177
multiplier = int(multiplier)
177178
# Compute register values and configure them.
178179
p1 = 128 * multiplier - 512
@@ -192,9 +193,14 @@ def configure_fractional(self, multiplier, numerator, denominator):
192193
multiplier and numerator/denominator. This is less accurate and
193194
susceptible to jitter but allows a larger range of PLL frequencies.
194195
"""
195-
assert 14 < multiplier < 91
196-
assert 0 < denominator <= 0xFFFFF # Prevent divide by zero.
197-
assert 0 <= numerator < 0xFFFFF
196+
if multiplier >= 91 or multiplier <= 14:
197+
raise Exception("Multiplier must be in range 14 to 91.")
198+
if denominator > 0xFFFFF or denominator <= 0: # Prevent divide by zero.
199+
raise Exception(
200+
"Denominator must be greater than 0 and less than 0xFFFFF."
201+
)
202+
if numerator >= 0xFFFFF or numerator < 0:
203+
raise Exception("Numerator must be in range 0 to 0xFFFFF.")
198204
multiplier = int(multiplier)
199205
numerator = int(numerator)
200206
denominator = int(denominator)
@@ -279,7 +285,8 @@ def r_divider(self):
279285

280286
@r_divider.setter
281287
def r_divider(self, divider):
282-
assert 0 <= divider <= 7
288+
if divider > 7 or divider < 0:
289+
raise Exception("Divider must in range 0 to 7.")
283290
reg_value = self._si5351._read_u8(self._r)
284291
reg_value &= 0x0F
285292
divider &= 0x07
@@ -306,10 +313,12 @@ def configure_integer(self, pll, divider):
306313
divider. This is the most accurate way to set the clock output
307314
frequency but supports less of a range of values.
308315
"""
309-
assert 3 < divider < 2049
316+
if divider >= 2049 or divider <= 3:
317+
raise Exception("Divider must be in range 3 to 2049.")
310318
divider = int(divider)
311319
# Make sure the PLL is configured (has a frequency set).
312-
assert pll.frequency is not None
320+
if pll.frequency is None:
321+
raise Exception("PLL must be configured.")
313322
# Compute MSx register values.
314323
p1 = 128 * divider - 512
315324
p2 = 0
@@ -331,14 +340,20 @@ def configure_fractional(self, pll, divider, numerator, denominator):
331340
fractional divider with numerator/denominator. Again this is less
332341
accurate but has a wider range of output frequencies.
333342
"""
334-
assert 3 < divider < 2049
335-
assert 0 < denominator <= 0xFFFFF # Prevent divide by zero.
336-
assert 0 <= numerator < 0xFFFFF
343+
if divider >= 2049 or divider <= 3:
344+
raise Exception("Divider must be in range 3 to 2049.")
345+
if denominator > 0xFFFFF or denominator <= 0: # Prevent divide by zero.
346+
raise Exception(
347+
"Denominator must be greater than 0 and less than 0xFFFFF."
348+
)
349+
if numerator >= 0xFFFFF or numerator < 0:
350+
raise Exception("Numerator must be in range 0 to 0xFFFFF.")
337351
divider = int(divider)
338352
numerator = int(numerator)
339353
denominator = int(denominator)
340354
# Make sure the PLL is configured (has a frequency set).
341-
assert pll.frequency is not None
355+
if pll.frequency is None:
356+
raise Exception("PLL must be configured.")
342357
# Compute MSx register values.
343358
p1 = int(128 * divider + math.floor(128 * (numerator / denominator)) - 512)
344359
p2 = int(

0 commit comments

Comments
 (0)