2015-10-20 221 views

回答

1

看起来你的问题不是Python,而是IO差距。即使您使用不同的引脚,Raspberry的GPIO也使用相同的总线来处理所有引脚,因此一个进程需要等待其他用途,而不是等待时间。

你可以用来解决这个问题,但所有这些都可能会类似于统一程序。

basic ideia:将这两个程序混合在一起。独特的进程/线程来统治所有的读取。

改进意识:将您的代码分成三个过程。然后两个将只读/写一个数组,并使用该值,因为它来自GPIO。其中一个过程将成为您的主要过程,并将处理GPIO数据的SharedArray。请记住,从RAM读取比从GPIO读取要好得多/快,因此只需使用阵列从IO更新状态即可。您可以使用一个数组来设置新值,另一个数组可以存储实际值。

前段时间我用一些Sockets在一些线程上广播了一些IO数据,并且可以获得一个更新数据(来自摄像头的图片),并与100ms间隔的线程共享,避免了IO差距。因此,您可以使用SocketServer库与一些workers传播信息得到类似的结果。

0

而不是同时运行程序,请尝试一个接一个地运行它们。显然树莓派由于尺寸和成本而具有硬件限制。我建议的是一次只运行一个程序。你可以把它们放在一个运行程序1的基本循环中,然后运行程序2,然后回到循环的开始。