Задержка

Данная часть библиотеки представляет функции для совершения программной и аппаратной задержки. При вызове функций задержки программа совершает их в предназначенное время и выполнение остальной части программы, не считая прерывания, останавливается.

Функции задержки не компилированы заранее, так как тактовая частота микроконтроллера может различаться в различных приложениях. Они компилируются каждый раз заново.

Функции

  • void sw_delay_ms(unsigned short count)
    Программная задержка в миллисекундах. Применение функции предполагает использование оптимизации компилятором. Параметры:
    • count - Время задержки в миллисекундах. От 0 до 65535 миллисекунд.
  • void sw_delay_us(unsigned short count)
    Программная задержка в микросекундах. Применение функции предполагает использование оптимизации компилятором. Параметры:
    • count - Время задержки в микросекундах. От 0 до 65535 микросекунды.
  • void hw_delay_ms(unsigned short count)
    Аппаратная задержка в миллисекундах, основанная на таймере. Функция использует 8-битный таймер 0 микроконтроллера ATmega128. В зависимости от частоты такта может произойти ошибка в несколько миллисекунд. Более точную задержку можно сделать 16-битным таймером, но они обычно применяются в других целях. Параметры:
    • count - Время задержки в миллисекундах. От 0 до 65535 миллисекунд.

Пример

Пример применения обеих функций задержки:

#include <homelab/delay.h>
 
int main(void)
{	
	// Программная задержка 100 ms
	sw_delay_ms(100);
 
	// Аппаратная задержка 100 ms
	hw_delay_ms(100);
}
ru/software/homelab/library/delay.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0