2014-12-14 3 views
0

Я хочу спросить, что случилось с моей кодировкой?ошибка в python: UnboundLocalError

малина терминал показать тис

"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

Я считаю, что вы используете функцию setStep, прежде чем определять ее. Попробуйте переместить определение функции setStep выше, где вы пытаетесь вызвать его.

Смежные вопросы