Как сюда поставить кнопку

При этом стандартная хотя бы yield() каждую милисекунду вызывает, хоть как-то блокировку обойти можно, а тут все наглухо. А говорят, что “Интернет врать не будет” :sweat_smile:

1 лайк

Процедура ТС еще и с переполнением не дружит…
Зато в нее, в принципе, можно встроить опрос кнопки… и этим обойти ограничение блокирующего кода.

1 лайк

Функцию antidelay() надо переименовать stupidDelay(). Чтоб было понятнее что там делается)

2 лайка

забавно, не?

1 лайк

там внутри совсем другой код…

да это понятно))
я про то, что оно существует.

мне неудобно напоминать уважаемомум дону, что С - регистрозависимый язык :))))

antidelay() vs AntiDelay()

так тут сплошные дилетанты собрались, вот у них и не работает

2 лайка

Да, нет, правильно было.

Простите, чьи проблемы? Ваши? Так не грузите ими нас.

Да. Вот кнопка начинающего ардуинщика. Что бы знать какой цвет нажал. Не антиделей, а просто с чертой внизу.


VID_20250627_181113

Спойлер
/////////////////////////////////////
// примеры для ws2812b
//Arduino UNO

#include "Adafruit_NeoPixel.h"
#define kn    5  //вывод кнопки
#define line_ 12 //число пикселей в ленте
uint8_t dataPin = 6;// вывод для подключения
Adafruit_NeoPixel strip = Adafruit_NeoPixel(line_,dataPin , NEO_GRB + NEO_KHZ800);// Создаем переменную strip для управления нашей лентой.
byte R=0;//
byte G=0;//
byte B=0;//
byte M=50;//
byte cv=0;//
///RGB
void setup() {
pinMode (kn, INPUT_PULLUP);//кнопка    
strip.begin();
}
void loop() {
delay_(50);
}
///////////////////////////////////////
void delay_(int T){
long Y=millis();//
while(millis()-Y<T){
if(digitalRead(kn)==LOW){
cv++;if(cv>7){cv=1;}
for ( int in = 0; in < line_; in++) {
strip.setPixelColor(in, (cv%2)*M, ((cv/2)%2)*M, ((cv/4)%2)*M);  
}
strip.show();    
delay(200);
}    
}
}
///////////////////////////////////////

Дети-дети. Я письма любимым на парашюте товарища в самолете перед десантированием писал. А вы с телефона не можете…

Было это давно и неправда, но было.)