2

Raspberry pi で GPIO を使用して、4 桁の 7 セグメント ディスプレイを駆動しています。表示は多重化され、while True:ループで実行されます。

表示を更新する新しい 4 桁の番号をユーザーに要求できるようにしたいと考えています。スレッドを使用してみましたが、変更された変数は、表示を更新するスレッドによって認識されません。

これが私がうまくいくと思ったもののサンプルです:

number = "0000" #used in drive_display() but can be updated in prompt()

def drive_display():
  while True:
    changeDigit(number[0],Digit1)
    time.Sleep(0.006)
    changeDigit(number[1],Digit2)
    time.Sleep(0.006)
    changeDigit(number[2],Digit3)
    time.Sleep(0.006)
    changeDigit(number[3],Digit4)
    time.Sleep(0.006)

threading.Thread(target=drive_display).start()

def prompt():
  number = input("new 4 digit number: ") 
  prompt()

prompt()
4

1 に答える 1

2

global機能させるには、スレッド関数で使用する必要があります。

def prompt():
  global number
  number = raw_input("new 4 digit number: ") 
  prompt()

ドキュメントから:

なしでグローバル変数に割り当てることは不可能ですglobal

于 2013-04-01T19:35:31.187 に答える