Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,如何检查a>;=b 5秒钟?我使用while循环,并在其他函数中获得延迟_Python_While Loop_Raspberry Pi3 - Fatal编程技术网

Python,如何检查a>;=b 5秒钟?我使用while循环,并在其他函数中获得延迟

Python,如何检查a>;=b 5秒钟?我使用while循环,并在其他函数中获得延迟,python,while-loop,raspberry-pi3,Python,While Loop,Raspberry Pi3,我绝对是python的高手,而且主要是编程方面的高手。(因此,我希望我也能从中吸取教训) 我正在尝试用Raspberry Pi 3和Raspbian OS创建我的“程序” 我的问题如下: 我想测试“如果a>=b持续5秒”(其中“a”是我从其他函数的串行数据中读取的值) 如果是,做点什么,如果不是做点别的,做起来似乎很简单 我准备就绪的“party”在我的一个函数中使用while循环在代码中解决了一次,但当我将“time waiting while循环”复制到另一个函数时,它开始产生巨大的延迟(大

我绝对是python的高手,而且主要是编程方面的高手。(因此,我希望我也能从中吸取教训)

我正在尝试用Raspberry Pi 3和Raspbian OS创建我的“程序”

我的问题如下:

我想测试“如果a>=b持续5秒”(其中“a”是我从其他函数的串行数据中读取的值)

如果是,做点什么,如果不是做点别的,做起来似乎很简单

我准备就绪的“party”在我的一个函数中使用while循环在代码中解决了一次,但当我将“time waiting while循环”复制到另一个函数时,它开始产生巨大的延迟(大约与我添加到额外while循环中的时间相同)

我真的希望有人能建议我用任何其他方法来检查“如果a>=b持续5秒”,而不是while循环

`https://pastebin.com/HB99vH9c`
或者如果有人有空闲时间检查我的代码,告诉我我犯了什么错误(可能是很多noob错误)

这是我的代码,它不包含关键的2个while循环(只有一个延迟30秒)

另一个有两个额外的while循环,它似乎延迟了(我的xwatts变量的)测量,总共大约6-14秒(我在每个while循环中给出了3秒的延迟)

另外,很抱歉,我的代码很长,无法在这里粘贴两次

我的值“a”是一个不断变化的值,它在不到1秒的时间内更新,我需要知道a>=b是否持续5秒,如果下降1个读数(0.1秒),则必须重新启动5秒“计时器”

您可以使用一段时间:


另外,删除代码中的所有
time.sleep()
将解决延迟问题。

欢迎使用SO,如果您创建一个最小的示例,您将得到更多答案:堆栈溢出通常会使代码在太长时可滚动,这是一个有趣的格式化小问题。但是,如果要创建链接,可以使用
[]
()
语法,其中
[]
中包含要显示为超链接的文本,
()
中包含实际链接。虽然如果您可以创建一个较小的示例,更好地显示您正在努力解决的问题,但读者会更容易帮助您。是的,链接格式不能与pasebin链接一起使用……这不是因为您花费了所有的
时间。sleep()
?你得出你的逻辑了吗?也许这只是一个算法问题。如果我运行1while循环延迟版本,它工作得很好,所以我认为这不是由“time.sleep()”引起的,所以当我使用简单的“If”而不使用“while循环”来计算时间时,它会实时测量。实际上,我的值“a”是一个不断变化的值,它会在不到1秒的时间内更新,我需要知道a>=b是否持续5秒,如果仅下降1次读数(0.1秒),则必须重新启动5秒“计时器”@VikTor,如果是,则在此期间不要进行任何睡眠。否则,在这5秒内,您只能以较低的频率进行测量。这对我来说也开始有意义,不幸的是,我现在无法测试它,但我希望在明天删除
time.sleep()
后它会起作用。我想我需要这些
时间。睡眠(0.001)
可以防止while在“计数时间”时占用大量CPU电源
`https://pastebin.com/HB99vH9c`
import time
end_time = time.time() + 5
while 'Wait 5 seconds':
    if a >= b:
       ...

    if time.time() > end_time:
        break