大家好!第一次提问,对我犯的每个错误深感抱歉。
我有一个Raspberry Pi,它可以监听2个信号。 经过一些测试,当引脚悬空时,我注意到一些噪音使我的信号打开和关闭几次,所以我用Python编写了一个小程序来查看这些信号打开多长时间:
##### SIGNAL DETECT LOOP #####
while 1:
time.sleep(0.05)
#S1 CHECK
if GPIO.input(12): #S1 ON
temp_str = ' S1 is ON '
print(temp_str)
if S1_FLAG != 1:
start_S1 = time.perf_counter()
S1_FLAG = 1
else:
if S1_FLAG != 0: #S1 OFF
end_S1 = time.perf_counter()
temp_str = 'S1 '+str(end_S1-start_S1)+' sec'
print(temp_str)
S1_FLAG = 0
与S2相同,在相同的循环周期中,在GPIO.input(11)上,不只是为了使其简短而报告。
我运行了这段代码,发现信号打开了0.5秒左右。我写了第一张“印刷品”
temp_str = ' S1 is ON '
print(temp_str)
只是为了检查视频,一切都进行了,但是经过一些测试,我决定对此进行评论并进行其他测试,然后发生了一些奇怪的事情:仅评论这两行,时间就增加了3秒。对S1的这些行进行注释,但对S2则不加注释,结果如下:
怎么可能?这些行被注释时,是我的程序出错了?
非常感谢您可以向我提出的每条建议。