We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent bc44d11 commit 391a40eCopy full SHA for 391a40e
pslab/bus/spi.py
@@ -19,7 +19,9 @@
19
0
20
"""
21
22
+import numpy as np
23
import sys
24
+from itertools import product
25
from typing import List, Tuple
26
27
import pslab.protocol as CP
@@ -98,6 +100,17 @@ def _frequency(cls) -> float:
98
100
def _clock_phase(cls) -> int:
99
101
return (cls._clock_edge ^ 1) & 1
102
103
+ @classmethod
104
+ def _get_prescaler(cls, frequency: float) -> Tuple[int]:
105
+ frequencys = []
106
+ for p, s in product(cls._PPRE_MAP, cls._SPRE_MAP):
107
+ frequencys.append(CP.CLOCK_RATE / (p * s))
108
+
109
+ frequencys = np.array(frequencys)
110
+ idx = np.abs(frequencys - frequency).argmin()
111
112
+ return divmod(idx, len(cls._SPRE_MAP))
113
114
@staticmethod
115
def _save_config(
116
primary_prescaler: int,
0 commit comments