delay

Организация задержки в stm32

Согласитесь, очень удобно пользоваться функциями delay_ms() при работе с контроллерами AVR. Жаль, что таких функций нет для stm32.
Задержка в avr организована в виде двух циклов написанных на ассемблере. Расчет величины задержки выполняется при помощи директив учитывающих частоту процессора на этапе компиляции. В stm32 такой подход не является таким действенным из-за больших частот.

Задержка на МК AVR ATmega на asm

Как вы понимаете задержка в микроконтроллерном программировании весч не просто нужная, а просто необходимая.

И если написать на C может и дурак (в виде цикла конечно), то на asm не все начинающие..

Итак. Задержка делается путём реализации вложенного цикла.

Нам понадобиться 2 регистра и немного команд из набора ассемблера для AVR.

При помощи директив ассемблера зададим 2 параметра. Количество проходов внешнего и внутренного циклов.