Как запустить функцию каждый 10-й раз через цикл?

c++ loop

В настоящее время у меня есть функция, которая поляризует все мои датчики каждый раз в своем цикле, но я хочу поляризировать один из датчиков только каждый 10-й раз. В настоящее время в начале моей функции есть задержка в 10 миллисекунд. Я знаю, что могу увеличить счетчик и использовать по модулю, но есть ли для этого лучшая практика?

, 👍-1

Обсуждение

Пожалуйста, покажите нам скетч, который вы используете., @VE7JRO

Это программа на тысячу строк, половина из которых посвящена полярности различных датчиков. Мне просто нужны общие решения, чтобы делать что-то один раз на каждые 10 раз, когда вы делаете что-то еще., @bob mcgrath

Вы уже попали в точку с модулем. Или есть старый добрый счет до тех пор, пока переменная не достигнет 10 и не установит ее обратно на ноль. Кроме того, это будет довольно специфично для конкретной ситуации., @Delta_G

по модулю тогда, спасибо, @bob mcgrath

слово "опрос", а не полюс, @jsotola

уменьшить счетчик ... если он достигает нуля, затем опросить датчик и перезагрузить счетчик ... микроконтроллер имеет эффективный способ проверки нулевых значений с помощью «нулевого флага», который устанавливается командой «уменьшение», @jsotola


2 ответа


1
for(int i=0; i < 9999; ++i)
{
    if(i % 10 == 0)
    {
         //мои действия над i = 0, 10, 20, 30...
    }
}
,

1

Обычно неоптимально снижать скорость цикла только для того, чтобы можно было их подсчитать. Вместо этого примените принцип BlinkWithoutDelay (это касается не Blink, а WithoutDelay)

,