MCPcopy Create free account
hub / github.com/RetiredWizard/PyDOS / SPI

Method SPI

lib/pydos_hw.py:266–312  ·  view source on GitHub ↗
(self,spiNo=0)

Source from the content-addressed store, hash-verified

264 self._SPI[spiNo] = None
265
266 def SPI(self,spiNo=0):
267 if not self._SPI[spiNo]:
268 if implementation.name.upper() == "CIRCUITPYTHON":
269 if spiNo == len(self._SPI)-1 and 'SPI' in dir(board):
270 self._SPI[spiNo] = board.SPI()
271 elif spiNo == 0 and 'SD_SPI' in dir(board):
272 self._SPI[spiNo] = board.SD_SPI()
273 else:
274 if spiNo+1 <= len(Pydos_hw.SCK):
275 trybitbangio = False
276 reuseSPI = -1
277 for i in range(len(self._SPI)):
278 if i != spiNo and self._SPI[i]:
279 if self.SCK[i] == self.SCK[spiNo]:
280 reuseSPI = i
281 try:
282 if reuseSPI == -1:
283 self._SPI[spiNo] = busio.SPI(self.SCK[spiNo], self.MOSI[spiNo], self.MISO[spiNo])
284 else:
285 self._SPI[spiNo] = self._SPI[reuseSPI]
286 except ValueError:
287 trybitbangio = True
288
289 if trybitbangio:
290 try:
291 import bitbangio
292 except ImportError:
293 trybitbangio = False
294 print('SPI Create Fail')
295
296 if trybitbangio:
297 self._SPI[spiNo] = bitbangio.SPI(self.SCK[spiNo], self.MOSI[spiNo], self.MISO[spiNo])
298 else:
299 print("SPI pins not defined for requested SPI interface #",spiNo)
300
301 elif implementation.name.upper() == "MICROPYTHON":
302 if self.SPI_NUM[spiNo] != None:
303 try:
304 self._SPI[spiNo] = m_SPI(self.SPI_NUM[spiNo],sck=Pin(self.SCK[spiNo]), \
305 mosi=Pin(self.MOSI[spiNo]),miso=Pin(self.MISO[spiNo]))
306 except:
307 self._SPI[spiNo] = m_SPI(self.SPI_NUM[spiNo])
308 else:
309 if self.SCK[spiNo]:
310 self._SPI[spiNo] = s_SPI(sck=Pin(self.SCK[spiNo]), \
311 mosi=Pin(self.MOSI[spiNo]),miso=Pin(self.MISO[spiNo]))
312 return self._SPI[spiNo]
313
314Pydos_hw = PyDOS_HW()
315sndPin = Pydos_hw.sndPin

Callers 10

do_mountFunction · 0.80
playimage.pyFile · 0.80
SPIFunction · 0.80
factory_test.pyFile · 0.80
SPIFunction · 0.80
SPIFunction · 0.80
__init__Method · 0.80
connectMethod · 0.80
__init__Method · 0.80
__init__Method · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected