2015-10-20 263 views

回答

1

看起來你的問題不是Python,而是IO差距。即使您使用不同的引腳,Raspberry的GPIO也使用相同的總線來處理所有引腳,因此一個進程需要等待其他用途,而不是等待時間。

你可以用來解決這個問題,但所有這些都可能會類似於統一程序。

basic ideia:將這兩個程序混合在一起。獨特的進程/線程來統治所有的讀取。

改進意識:將您的代碼分成三個過程。然後兩個將只讀/寫一個數組,並使用該值,因爲它來自GPIO。其中一個過程將成爲您的主要過程,並將處理GPIO數據的SharedArray。請記住,從RAM讀取比從GPIO讀取要好得多/快,因此只需使用陣列從IO更新狀態即可。您可以使用一個數組來設置新值,另一個數組可以存儲實際值。

前段時間我用一些Sockets在一些線程上廣播了一些IO數據,並且可以獲得一個更新數據(來自攝像頭的圖片),並與100ms間隔的線程共享,避免了IO差距。因此,您可以使用SocketServer庫與一些workers傳播信息得到類似的結果。

0

而不是同時運行程序,請嘗試一個接一個地運行它們。顯然樹莓派由於尺寸和成本而具有硬件限制。我建議的是一次只運行一個程序。你可以把它們放在一個運行程序1的基本循環中,然後運行程序2,然後回到循環的開始。

相關問題