Как сделать многозадачность?

Здравия, товарищи, есть один вопрос. Мне надо сделать в программе 2 независимых (почти) потока

1 поток - светодиоды горят

2 поток - пищалка играет

так же имеется кнопка, которая должна включать / выключать потоки (оба сразу)

Вопрос: а как реализовать многозадачность. Спасибо

RP2040 - 200р - 2 ядра - 2 потока
или millis() как бы 2 и более потоков.

RP2040 это плата?

А как через millis() сделать я не нашел

@lilik, читал

как я не напряг свои извилины, но переформулировать код под свои задачи я не смог

Напрягайте еще, программирование - это сплошной напряг извилин :wink:

Задача №1 - светодиоды горят
Задача №2 - пищалка играет
Задача №3 - кнопка, которая должна включать / выключать

Отработайте все три задачи по отдельности, потом совместите

Значит, не дорос еще. Мигай пока светодиодиками

я планку выше ставлю.
ЗЫ я в ардуино только вчера погрузился

  1. Кнопка запускает 2 задачи / потока
  2. По отдельности у меня есть наверстка

Ну так в чем проблема? Определитесь, как задача запускается и как останавливается, а там уже и с кнопкой понятно станет

не по Сеньке шапка. Пока по шагам не пройдёшь все этапы, на след. ступень лестницы знаний не вскарабкаешься.

1 лайк

Если только вчера, то не стоит планки завышать, ешьте слона по частям…

3 лайка

тогда забей, мир огромен, интересного масса

Окей, кому не понятно, ща объясню, как должен работать код
мы определяем 1 порт на вход (кнопка) и 6 на выход (1 от зуммера, остальные к св-диодам)

определяем переменную on_off с изначальным значением false

в loop() создаем условие, что если кнопка нажата, и если значение on_off равно false, то мы переменной on_off присваиваем значение true. И наоборот - есkb true, присваиваем false.

Дальше программа проверяет (вне блока с кнопкой), равна ли on_off значению true. Если равна, то должны запускаться одновременно 2 потока:

1 поток - горит светодиод на 1 пине, задержка, выкл, влючается на 2 пине и т. д.
2 поток - пищалка пищит на разных частотах

1 лайк

а зуммер мы забыли, да?
мигать св-диодами можно и без millis()

Это как?

1 лайк

а ты попробуй. хотя бы тремя, вразнобой, с разной частотой.

1 лайк