Коли в Сі-програмі немає жодного циклу, то говорять, що вона однократного дії Чому Тому що без циклів не можна організувати зворотний звязок і багаторазове виконання процедур Як тільки оператори, наявні в «одноразової» микроконтроллерной програмі, виконають свої дії, то робота закінчується і MK перестає реагувати на зовнішні впливи

Якщо бути абсолютно точним, то загальмувати MK можна двома способами По-перше, ввести його програмно в сплячий режим із зниженим енергоспоживанням По-друге, змусити MK в циклі виконувати будь-яку порожню команду Саме другий спосіб використовує компілятор AVR-GCC, автоматично зациклюючись «однократні» програми Отже, і тут без циклів не обійтися

Основне завдання операторів циклів полягає в виконання однієї або декількох команд до тих пір, поки дотримується певну умову Такі оператори є у всіх алгоритмічних мовах високого рівня та їх синтаксис дивним чином співпадає один з одним

Оператор «while» (у перекладі з англ «Доти, поки»)

На Рис 623, а показана схема алгоритму, а на Рис 623, б, в – дві форми запису оператора «while» Він застосовується, як основний, практично в усіх програмах, де необхідно організувати цикл А робити це доводиться часто, оскільки специфіка програм з MK полягає в тому, що великий відсоток часу відводиться на циклічний опитування ліній портів (датчиків, кнопок, сигналів) і внутрішніх програмних регістрів

Рис 623 Оператор «while»: а) схема алгоритму б) проста форма в) складова форма

Оператор «while» по синтаксису дуже схожий на оператор «if», включаючи умову перевірки, яке будується за точно таким же правилам Різниця полягає в кількості циклів, а саме, оператор «if» виконується один раз, а оператор «while» – багаторазово, до тих пір, поки умова перевірки буде істинним Наприклад, у записі «while (1)» цифра «1» згідно з канонами мови Сі є «істиною» («0» – брехня), тому цикл буде виконуватися нескінченне число разів

Оператор «do-while» (у перекладі з англ «Робити до тих пір, поки»)

Схема алгоритму оператора «do-while» показана на Рис 624, а Цей оператор доповнює і розширює можливості організації циклів і має дві форми запису: просту і складову (Мал 624, б, в)

Рис 624 Оператор «do-while»: а) схема алгоритму б) проста форма в) складова форма

Починається процедура з виконання оператора «1» або операторів «l» .. «N» у складовою формі По завершенню аналізується умова перевірки Якщо результат «істина», то відбувається повернення до початку рядка «do» (Підняття «вгору на ліфті») і повторення циклу Якщо результат «брехня», то цикл «do-while» завершується і управління передається до нижченаведеної рядку програми

Головна відмінність оператора «do-while» від оператора «while» полягає в тому, що тіло циклу «do-while» в будь-якому випадку виконується хоча б один раз У операторі «while» такий поворот подій не обовязковий, наприклад, якщо проверяемое умова помилково, то вихід з циклу відбувається відразу ж без виконання какіібо дій Добре це чи погано, залежить від конкретної програми Але все-таки багато програмісти побоюються застосовувати оператор «do-while», вважаючи, що краще уважно розглянути місце, куди збираєшся стрибати, до стрибка, а не після ..

Оператор «for» (у перекладі з англ «Для, протягом»)

Як відомо, при організації будь-яких програмних циклів виконуються три стандартні операції:

• ініціалізація лічильника (занесення в змінну початкового значення)

• порівняння числа, що зберігається в лічильнику, з граничною величиною

• збільшення / зменшення лічильника при кожному проході циклу

У операторі «for» всі три перерахованих дії зібрані воєдино, тому він візуально виходить досить компактним (Мал 625, а)

Существуютдве форми запису оператора «for» (Мал 625, б, в), причому допускаються багаторазово вкладені цикли «for-for-for ..»

Рис 625 Оператор «for»: а) схема алгоритму б) проста форма в) складова форма

У круглих дужках після слова «for» містяться три вирази, розділені символом «крапка з комою» Перше з них «Початок» виконується один раз на самому початку циклу Зазвичай це оператор присвоювання вихідного значення лічильника циклів Другий вираз «Умова» – це і є головна умова перевірки, що має синтаксис, аналогічний операторам «if» і «while» При виконанні умови цикл відразу завершується і управління передається вниз за межі фігурних дужок Третє вираз «Дія», як правило, містить оператор збільшення / зменшення лічильника і виконується в кінці кожної ітерації

Джерело: Рюмік, С М, 1000 і одна мікроконтролерна схема Вип 2 / С М Рюмік – М: ЛР Додека-ХХ1, 2011 – 400 с: Ил + CD – (Серія «Програмовані системи»)