好的,所以我想在Python中创建一个无限循环,原因是我想最终创建4个具有调制输出的软件脉冲。由于PWM的性质是每秒数千次切换,我想我每个实例需要4个线程。现在我知道我可以获得一些硬件并创建硬件PWM输出,但是为了测试我想使用软件的东西。
首先,我刚刚创建了一个简单的代码片段。非常简单,它创建一个单独的线程,然后打印/关闭一次0.5秒。
我发现的问题是它是一个无限循环(这很好),但我意识到我不能使用Ctrl ^ c在测试期间突破循环。为了确保如果我需要在测试过程中运行代码,那么将是最好的地方放置"尝试"块,我看到一旦主循环退出ctrl ^ c不再被捕获。
谢谢
#!/usr/bin/python
import threading
import time
exitFlag = 0
class myThread (threading.Thread):
def __init__(self, threadID, name, pin):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.pin = pin
def run(self):
print "Starting " + self.name
print_time(self.pin)
print "Exiting " + self.name
def print_time(pin):
while True:
try:
on = .5
off = .5
print (pin, "on")
time.sleep(on)
print (pin, "off")
time.sleep(off)
except KeyboardInterrupt:
break
except:
break
# Create new threads
thread1 = myThread(1, "Thread-1", 11)
# Start new Threads
thread1.start()
print "Exiting Main Thread"
pi@UnderTV ~ $ ./threads2.py
Exiting Main Thread
Starting Thread-1
(11, 'on')
(11, 'off')
(11, 'on')
(11, 'off')
(11, 'on')
(11, 'off')
(11, 'on')
(11, 'off')
^X(11, 'on')
^X(11, 'off')
(11, 'on')
^C(11, 'off')
^C(11, 'on')
^C(11, 'off')