цикл

Тема в разделе "Arduino & Shields", создана пользователем Nabla, 4 июл 2013.

  1. Nabla

    Nabla Нуб

    После setup идет цикл loop
    можно ли loop разделить на несколько независимых циклов?
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    loop() - это не цикл, а функция, которая вызывается в цикле.
    Что Вы подразумеваете под "независимыми циклами"?
     
  3. Nabla

    Nabla Нуб

    К примеру
    горят светодиоды по своему принцыпу, я еще добавил фоторезистор к которому подключен один светодиод, так вот, если я напишу delay, чтоб он реже запрашивал аналоговый вход, то он будет влиять и на те светодиоды.
    как отделить их, светодиоды и фоторезистор с светодиодом?
     
  4. Mitrandir

    Mitrandir Гуру

    Можно и без delay сделать . Вечером напишу как. На телефоне неудобно
     
  5. Megakoteyka

    Megakoteyka Оракул Модератор

    Код (C):
    long _prevTime = 0;
    void setup()
    {
      _prevTime = millis();
    }

    void loop()
    {
      long currentTime = millis();
      if(_prevTime + 1000 < currentTime)
      {
        // сюда попадаем каждую секунду
            _prevTime = currentTime;
       }
    }
     
  6. tyz

    tyz Нерд

    Прошу прощения. но вроде как currentTime не функиця, да и _prevTime = currentTime; должно быть внутри условия, иначе мы никогда в него не попадем.

    и я бы рекомендовал использовать указатель на время пробуждения "потока"
    Код (C):

    long _wakeUpTime = 0;
    void setup() {}

    void loop() {
      long currentTime = millis();
      if(_wakeUpTime <= currentTime) {
        // сюда попадаем каждую секунду
        _wakeUpTime = currentTime + 1000;
      }
    }
     
     
    Nabla и Mitrandir нравится это.
  7. Nabla

    Nabla Нуб

    спс работает)))
     
  8. Nabla

    Nabla Нуб

    теперь у меня Ардуино выполняет 3 разные задачи)))