python - Python> 如何:从第二个“while True”返回到第一个“while True”?
问题描述
我为我的 Orange PI win 编写了简单的 while 循环来控制 5 个 LED,但我不知道如何在 true 时从第一个循环返回。现在第二个循环程序结束后我想回到第一个循环
你能建议怎么做吗?
import os
import time
os.system("echo 37 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio37/direction,echo 38 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio38/direction,echo 39 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio39/direction,echo 101 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio101/direction,echo 36 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio36/direction")
#zmienne
sl ="sleep 0.5"
i = 1
imax = 10
y = 0.2
z = 0.1
val = 10
value = 1
L1_On = "echo 1 > /sys/class/gpio/gpio37/value"
L1_Off = "echo 0 > /sys/class/gpio/gpio37/value"
L2_On = "echo 1 > /sys/class/gpio/gpio38/value"
L2_Off = "echo 0 > /sys/class/gpio/gpio38/value"
L3_On = "echo 1 > /sys/class/gpio/gpio39/value"
L3_Off = "echo 0 > /sys/class/gpio/gpio39/value"
L4_On = "echo 1 > /sys/class/gpio/gpio101/value"
L4_Off = "echo 0 > /sys/class/gpio/gpio101/value"
L5_On = "echo 1 > /sys/class/gpio/gpio36/value"
L5_Off = "echo 0 > /sys/class/gpio/gpio36/value"
timeout = time.time() + 5 # 5 seconds
while True:
print ("2 prog", i)
os.system(L1_On)
time.sleep (z)
os.system(L1_Off)
#time.sleep (y)
os.system(L2_On)
time.sleep (z)
os.system(L2_Off)
#time.sleep (y)
os.system(L3_On)
time.sleep (z)
os.system(L3_Off)
#time.sleep (y)
os.system(L4_On)
time.sleep (z)
os.system(L4_Off)
#time.sleep (y)
os.system(L5_On)
time.sleep (z)
os.system(L5_Off)
#time.sleep(y)
if time.time() > timeout:
break
continue
#right follow
timeout = time.time() + 5 # 5 seconds
while True:
print ("2 prog", i)
os.system(L5_On)
time.sleep (z)
os.system(L5_Off)
#time.sleep (y)
os.system(L4_On)
time.sleep (z)
os.system(L4_Off)
#time.sleep (y)
os.system(L3_On)
time.sleep (z)
os.system(L3_Off)
#time.sleep (y)
os.system(L2_On)
time.sleep (z)
os.system(L2_Off)
#time.sleep (y)
os.system(L1_On)
time.sleep (z)
os.system(L1_Off)
#time.sleep(y)
if time.time() > timeout:
break
continue
解决方案
尝试将两个循环放在另一个while True:
循环中,即:
import os
import time
os.system("echo 37 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio37/direction,echo 38 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio38/direction,echo 39 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio39/direction,echo 101 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio101/direction,echo 36 > /sys/class/gpio/export,echo out > /sys/class/gpio/gpio36/direction")
#zmienne
sl ="sleep 0.5"
i = 1
imax = 10
y = 0.2
z = 0.1
val = 10
value = 1
L1_On = "echo 1 > /sys/class/gpio/gpio37/value"
L1_Off = "echo 0 > /sys/class/gpio/gpio37/value"
L2_On = "echo 1 > /sys/class/gpio/gpio38/value"
L2_Off = "echo 0 > /sys/class/gpio/gpio38/value"
L3_On = "echo 1 > /sys/class/gpio/gpio39/value"
L3_Off = "echo 0 > /sys/class/gpio/gpio39/value"
L4_On = "echo 1 > /sys/class/gpio/gpio101/value"
L4_Off = "echo 0 > /sys/class/gpio/gpio101/value"
L5_On = "echo 1 > /sys/class/gpio/gpio36/value"
L5_Off = "echo 0 > /sys/class/gpio/gpio36/value"
while True:
timeout = time.time() + 5 # 5 seconds
while True:
print ("2 prog", i)
os.system(L1_On)
time.sleep (z)
os.system(L1_Off)
#time.sleep (y)
os.system(L2_On)
time.sleep (z)
os.system(L2_Off)
#time.sleep (y)
os.system(L3_On)
time.sleep (z)
os.system(L3_Off)
#time.sleep (y)
os.system(L4_On)
time.sleep (z)
os.system(L4_Off)
#time.sleep (y)
os.system(L5_On)
time.sleep (z)
os.system(L5_Off)
#time.sleep(y)
if time.time() > timeout:
break
continue
#right follow
timeout = time.time() + 5 # 5 seconds
while True:
print ("2 prog", i)
os.system(L5_On)
time.sleep (z)
os.system(L5_Off)
#time.sleep (y)
os.system(L4_On)
time.sleep (z)
os.system(L4_Off)
#time.sleep (y)
os.system(L3_On)
time.sleep (z)
os.system(L3_Off)
#time.sleep (y)
os.system(L2_On)
time.sleep (z)
os.system(L2_Off)
#time.sleep (y)
os.system(L1_On)
time.sleep (z)
os.system(L1_Off)
#time.sleep(y)
if time.time() > timeout:
break
continue
推荐阅读
- node.js - NodeJS 无法连接到 Redis
- rspec - 通过 Spec 和 Capybara 运行测试,如果我通过请求外部 javascript 资源附加它,则无法加载 html 元素
- react-native - Mixpanel.sharedInstanceWithToken 不是本机反应中的功能
- java - 几秒钟后只执行一次任务
- html - 在角度 5 中为 ngModel 添加千位分隔符?
- android - 无法解析为快照:Firebase setValue ANDROID
- perl - 在脚本的不同部分使用不同的哈希值
- php - 在路由中看不到登录,如何在 jeremykenedy/laravel-auth 的 Laravel 5.6 克隆中向登录过程添加其他操作
- instagram - Instagram API 媒体/评论未显示最近的评论
- django-2.0 - django 2.0:不使用正确的视图