我想问我的编码有什么问题?
raspberry terminal show tis
"Traceback (most recent call last):
File "case.py", line 88, in <module>
forward(int(x),int(delay) / 1000.0)
File "case.py", line 65, in forward
setStep(1, 0, 1, 0)
UnboundLocalError: local variable 'setStep' referenced before assignment"
下面的是我编码的一部分。
def forward(x,delay):
if x == 1 :
print"motor does not move"
forward(delay, step)
for i in range(0, 0):
setStep(1, 0, 1, 0)
time.sleep(delay)
setStep(0, 1, 1, 0)
time.sleep(delay)
setStep(0, 1, 0, 1)
time.sleep(delay)
setStep(1, 0, 0, 1)
time.sleep(delay)
break
elif x == 2 :
for i in range(0, 13):
setStep(1, 0, 1, 0)
time.sleep(delay)
setStep(0, 1, 1, 0)
time.sleep(delay)
setStep(0, 1, 0, 1)
time.sleep(delay)
setStep(1, 0, 0, 1)
time.sleep(delay)
break
elif x == 3 :
for i in range(0,25):
setStep(1, 0, 1, 0)
time.sleep(delay)
setStep(0, 1, 1, 0)
time.sleep(delay)
setStep(0, 1, 0, 1)
time.sleep(delay)
setStep(1, 0, 0, 1)
time.sleep(delay)
break
elif x == 4 :
for i in range(0,38):
setStep(1, 0, 1, 0)
time.sleep(delay)
setStep(0, 1, 1, 0)
time.sleep(delay)
setStep(0, 1, 0, 1)
time.sleep(delay)
setStep(1, 0, 0, 1)
time.sleep(delay)
break
elif x > 4 :
print "the number does not exits , please enter a number between 1 to 4."
def setStep(w1, w2, w3, w4):
GPIO.output(coil_A_1_pin, w1)
GPIO.output(coil_A_2_pin, w2)
GPIO.output(coil_B_1_pin, w3)
GPIO.output(coil_B_2_pin, w4)
while True:
delay = raw_input("Delay between steps (milliseconds)?")
x = raw_input("choose 1,2,3,4,where 1 move to 0 degree,2 move 90 degree, 3 move 180 degree,4 move 270 degree clockwise: ")
forward(int(x),int(delay) / 1000.0)
答案 0 :(得分:0)
我相信你在定义它之前使用的是setStep函数。尝试将setStep函数的定义移到上面尝试调用它的位置。