实时应用程序的时间管理

Time management for real-time applications

如何用python产生精确的脉冲?

from threading import Thread
import time

def runA():
    while True:
        print "a"
        sendSignal(1)
        time.sleep(0.0001)
        sendSignal(0)
        time.sleep(0.005)


if __name__ == "__main__":
    t1 = Thread(target = runA)
    t1.setDaemon(True)
    t1.start()
    while True:
        sleep(10)

python 中的时间管理不精确。专门用于创建多线程 PWM 生成器(假设每个线程以特定速率发送数据)。有没有更好的方法来产生脉冲?精确的!

[解决方案与语言无关]

您的输出可能已被缓冲,因此您将一次性打印一大块。您可以尝试在每次打印后刷新标准输出,如

sys.stdout.flush()

我的解决方案是找到实时 OS 实际上 raspberry pi 有 raspbian OS

的实时补丁

更多信息:https://www.raspberrypi.org/forums/viewtopic.php?t=39951

启用它有点困难。但它正在工作,错误率急剧下降。

感谢@holdenweb 提供的实时提示 OS