Вообще, на каждом такте регулятора. И это не преждевременная оптимизация которая зло (с), а банальный здравый смысл как по занятости ядра. так и по флеши. (корни-квадраты в плавучке vs таблицы и целочисленная арифметика)
Я однажды делал очень-Очень-ОЧЕНЬ срочный заказ на ардуйне (железной, а не вайрише). И на вылизывание таймеров времени не хватило - счет шел буквально на минуты. И вместо кошерного решения тупо воткнул библиотечную функцию с изменяемым извне параметром (угу. delay_ms(x)). Прошивка моментально выросла с пары сотен байт до 4+КБ. Благо места хватало с головой. Заказчик ушел довольным, а я пару дней помаялся и добавил в личную библу соответствующую функцию. Выводы сделайте сами.
Но ведь функция регулятора работает в жестком реалтайме, и об этом стоит помнить с самого начала, еще на этапе проектирования.







