Попробую я объяснить по простому. Объясняю реализацию такой задачи: немодулированный генератор 36 кГц.
К ножке пинлед подцеплен ИК светодиод. Сперва немного математики. К МК у вас подключен кварц, допустим 8 МГц. Это означает, что за секунду пройдет 8 миллионов тактов, а длина одного такта 0,125 микросекунд. 36 кГц говорит о том, что светодиод должен загореться и погаснуть 36 тысяч раз в секунду. А значит его время горения и не горения равно 1/ 36000 = 28 микросекунд, 14 микросекунд горит/14 микросекунд не горит. В 14 микросекундах 111 тактов. На этом урок математики окончен. программа получается такой:
начало: включить пинлед
пауза на 111 тактов
выключить пинлед
пауза на 111 тактов
перейти на начало
Но это уже было в старой теме, усложним задачу. Как сделать паузу? Есть такая команда NOP, она говорит МК ничего не делать в течение одного такта. Но писать ее 111 раз - расточительно. Поэтому надо сказать МК: ничего не делай 111 тактов. Эта задача решается при помощи цикла. Цикл - это последовательность действий, которая выполняется либо определенное количество раз (и тогда в цикле есть переменная - счетчик цикла), либо перед очередным выполнением цикла проверяется некое условие, либо условие проверяется после очередного выполнения цикла. В зависимости от результата проверки условия принимается решение либо об еще одном выполнении цикла, либо о выходе из цикла.