我正在使用Python
为LCD屏幕编写代码,我希望它显示闪烁的“按SELECT”信息,直到按下LCD上的按钮。
问题在于,当程序处于睡眠状态时,它不会注册用户按下按钮,这意味着我必须在打印消息时完全按下按钮。
如何在不使用睡眠的情况下完成此操作?
这是我使用的代码:
#lcd.is_pressed(LCD.SELECT) - checks if button is pressed
#lcd.message - prints text on LCD
#lcd.clear - removes all text from LCD
while not lcd.is_pressed(LCD.SELECT):
lcd.message ('Press Select')
sleep(2)
lcd.clear()
sleep(2)
答案 0 :(得分:0)
将你的时间分成更小的片段;这会每百分之一秒检查一次按钮:
i = 0
while not lcd.is_pressed(LCD.SELECT):
i = (i + 1) % 400
if i == 0:
lcd.message("Press Select")
elif i == 200:
lcd.clear()
sleep(0.01)
答案 1 :(得分:0)
试试这个:
import time
delayTime=2 #In seconds
dummyVariable=is_pressed(LCD.Select)
while not dummyVariable:
lcd.message('Press Select')
dummyVariable=softWait(delayTime)
lcd.clear()
dummyVariable=softWait(delayTime)
def softWait(delayTime)
t0 = time.time()
t1 = time.time()
while t0-t1<delayTime:
dummyVariable=is_pressed(LCD.Select)
t1=time.time()
if dummyVariable:
return True
return False
在不知道is_pressed如何运作的情况下,我无法对此进行测试。但最有可能的问题是,如果is_pressed仅注册True,如果按钮当前被点击,如果按钮点击比系统返回time.time()或lcd.message()调用的时间快,则会失败。真的很快。