как избавится от delay в for

splans
splans аватар
Offline
Зарегистрирован: 06.07.2015

МОЗ СЛОМАЛ, ПОМОГИТЕ ИЗБАВИТСЯ ОТ delay

int regim=1; 
int flag=0;   
const int pinStep = 5;
const int pinDir = 4;
const int pinD = 3;
const int pinknop = 2;

const int move_delay = 7;
const int steps_rotate_360 = 200;

void setup()
{
  pinMode(pinStep, OUTPUT);
  pinMode(pinDir, OUTPUT);
  pinMode(pinD, OUTPUT);
  pinMode(pinknop, INPUT);  
 
  digitalWrite(pinDir, HIGH);
  digitalWrite(pinStep, HIGH);
  digitalWrite(pinD, HIGH);
  delay(1000);
  
}

void loop()
{
  digitalWrite(pinD, HIGH);
  digitalWrite(pinDir, HIGH);
  digitalWrite(pinStep, HIGH);

  if(digitalRead(pinknop)==HIGH&&flag==0)
     { 
       regim++;   
       flag=1;    
        if(regim>2)
        { 
          regim=1;
        }   
     }   
      if(digitalRead(pinknop)==LOW&&flag==1)
     {      
        flag=0;
     }      
    if(regim==1)//первый режим 
    { 
      digitalWrite(pinD, LOW);
      for(int i = 0; i < steps_rotate_360; i++)
    {
    
 
    digitalWrite(pinStep, HIGH);
    

    delay(move_delay);
    

    digitalWrite(pinStep, LOW);
    

    delay(move_delay/22);
    

    
  }
    } 
    if(regim==2)
    {   
     digitalWrite(pinD, LOW);   
     for(int i = 0; i < steps_rotate_360; i++)
    {
    
    digitalWrite(pinStep, HIGH);
    
    delay(move_delay);
    
    digitalWrite(pinStep, LOW);
    
    delay(move_delay/22);
   
  }
    
    delay(move_delay*333); 
    
      
    } 
 if(regim==2)
    { 
    digitalWrite(pinD, HIGH);
      
  }

   
  
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ну так выкини его нафик. 

splans
splans аватар
Offline
Зарегистрирован: 06.07.2015

да я не против да ни как без него

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

splans пишет:

да я не против да ни как без него

Ну так оставь тогда

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Глумица будут, пока не скажешь, что код должен делать, что делает и что не устраивает сейчас

splans
splans аватар
Offline
Зарегистрирован: 06.07.2015

это поворотный столик ждя театрального представления, по кнопке перекл режимы но кнопка плохо срабатывает делей все тормозит а этого не должно быть

b707
Offline
Зарегистрирован: 26.05.2017

ну так ты не выкладывай код с делеями - ты выложи как ты пытался избавится. Ты ж пишешь, что уже "мозг сломал". Где результат?

Пример "блинк без делей" изучил? Если нет - сначала изучи и попробуй воплотить, а потом уже на форум приходи.

splans
splans аватар
Offline
Зарегистрирован: 06.07.2015

"блинк без делей"  в легкую а вот В ФОРЕ ОН НЕ РАБОТАЕТ

b707
Offline
Зарегистрирован: 26.05.2017

splans пишет:

"блинк без делей"  в легкую а вот В ФОРЕ ОН НЕ РАБОТАЕТ

поэтому for надо заменить на вызов содержимого цикла нужное кол-во раз. А задержку - по миллис

В общем. думайте. Желательно, чтобы вы попробовали написать код, иначе будет сплошной глум.

splans
splans аватар
Offline
Зарегистрирован: 06.07.2015

это я вкурсе давот логику построения операций не могу вкурить, хоть намекните

b707
Offline
Зарегистрирован: 26.05.2017

splans пишет:

это я вкурсе давот логику построения операций не могу вкурить, хоть намекните

про машину состояний почитайте - в вашем коде как раз она нужна.

Сорри - я не издеваюсь - я лусше обьяснить не умею.

splans
splans аватар
Offline
Зарегистрирован: 06.07.2015

МКА - ЭТО ОНО?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

Ты ж пишешь, что уже "мозг сломал". Где результат?

Дык ...

kalapanga
Offline
Зарегистрирован: 23.10.2016

splans пишет:

"блинк без делей"  в легкую а вот В ФОРЕ ОН НЕ РАБОТАЕТ

Почему все считают, что их проблема уникальна? Вы бы почитали форум-то! Строка поиска справа вверху опять же не только для красы приделана. Я вот почему-то сразу пример нашёл. И угадайте, как тема называется - Millis вместо delay в цикле for

splans
splans аватар
Offline
Зарегистрирован: 06.07.2015

спасибо буду пробовать