• Замечено: чем умнее становятся компьютеры, тем тупее становятся их пользователи.

Потоки в программе Lego EV3

Поток представляет из себя фрагмент программного кода, который может работать независимо — параллельно выполнению основной программы. Например, можно создать поток, который будет управлять двигателями в то время, как основная программа будет опрашивать датчики или ожидать действий пользователя.
Пример программы с двумя потоками, в ней робот выполняет две независимые задачи – мигает подсветкой с частотой 1 раз в секунду и параллельно — выводит текст на экран с частотой 0,4 секунды.

Вы можете скопировать указанный ниже код в IDE MS Small Basic с установленной библиотекой EV3 и подключенным блоком Lego EV3 и запустить:

 

Sub Blinker '  подпрограмма, которая будет выполняться в параллельном потоке

While "true"

EV3.SetLEDColor("ORANGE","NORMAL")

Program.Delay(500)

EV3.SetLEDColor("OFF","NORMAL")

Program.Delay(500)

EndWhile

EndSub

' основная программа

Thread.Run = Blinker ' запуск параллельного потока выполнения

LCD.Clear()

For y = 0 to 120 Step 10 ' цикл запустится 13 раз, а не 12

LCD.Text(1, 0, y, 1, "Tick")

Program.Delay(400) ' пауза 0.4 сек

EndFor


Поделиться: