Цитата Сообщение от jim Посмотреть сообщение
Давайте посмотрим на цифры.
а давайте сначала научимся правильно считать

Цитата Сообщение от jim Посмотреть сообщение
1. Разовый overhead
Параметр Прерывание SwapSet
Время переключения ~150 тактов ~192 такта
не "~192", а "от 223" (не забываем стоимость вызова + еще, возможно, альтернативные)
не "~150", а может быть и намного меньше (сохранение не сразу, ранние проверки и выход)

Цитата Сообщение от jim Посмотреть сообщение
2. Суммарный overhead
Параметр Прерывание SwapSet
Частота вызова 50 раз/сек (кадр) или 1000+ раз/сек (таймер) Несколько раз за программу
Суммарные траты 7 500 тактов/сек (50 Гц) или 150 000 тактов/сек (1 кГц) ~1000 тактов за всё время работы

Здесь всё очевидно: прерывания стабильно «съедают» тысячи тактов каждую секунду, SwapSet же — копейки за весь прогон программы.
эээ, минуточку! как это "несколько раз за программу"?
почему количество переключений "независимо от места" оказалось вдруг НАСТОЛЬКО ограничено?
что за новости, почему ВНЕЗАПНО стало нельзя иметь over 9000 "независимых мест" в секунду??

Цитата Сообщение от jim Посмотреть сообщение
Цель SwapSet
SwapSet — не для tight loop и не для экономии каждого такта. Его задача:
• изолировать функции друг от друга;
• дать каждой задаче «свои регистры»;
• сделать код предсказуемым и модульным.
ломишься в открытую дверь, это всё и так уже есть

Цитата Сообщение от jim Посмотреть сообщение
Цена в 192 такта оправдана, если цель — ясность и надёжность архитектуры.
продолжение бессмысленной трескотни в каких единицах измеряется "ясность и надёжность архитектуры"?
и да, кстати, di в произвольном месте это лишний риск пропуска прерывания, всякие музончики пострадают - просто охренительная "надёжность"

Цитата Сообщение от jim Посмотреть сообщение
Если 192 такта в SwapSet — это «слишком дорого», тогда давайте для честности все дружно откажемся и от прерываний.
не откажемся, потому что прерывания бывают нужны и сильно облегчают жизнь программисту, а рандомные мусорные вызовы - не нужны и не облегчают

Цитата Сообщение от jim Посмотреть сообщение
Ведь там вообще неконтролируемые тысячи тактов уходят каждую секунду.
снова мимо, контролируемые и не каждую