Atmel Software Framework

Busy-Wait Delay Routines


This module provides simple loop-based delay routines for those applications requiring a brief wait during execution.

Common API for UC3, XMEGA, and AVR MEGA.

Defines

#define delay_init(fcpu_hz)
 Initialize the delay driver.
#define delay_ms(delay)   cpu_delay_ms(delay, F_CPU)
 Delay in milliseconds.
#define delay_s(delay)   cpu_delay_ms(1000 * delay, F_CPU)
 Delay in seconds.
#define delay_us(delay)   cpu_delay_us(delay, F_CPU)
 Delay in microseconds.
#define F_CPU   <value>
 MCU Clock Frequency (Hertz).

#define delay_init (   fcpu_hz  ) 

Initialize the delay driver.

Parameters:
fcpu_hz CPU frequency in Hz
Deprecated:
This function is provided for compatibility with ASF applications that may not have been updated to configure the system clock via the common clock service; e.g. sysclk_init() and a configuration header file are used to configure clocks.

The functions in this module call sysclk_get_cpu_hz() function to obtain the system clock frequency.

#define delay_s (   delay  )     cpu_delay_ms(1000 * delay, F_CPU)

Delay in seconds.

Parameters:
delay Delay in seconds
#define delay_us (   delay  )     cpu_delay_us(delay, F_CPU)

Delay in microseconds.

Parameters:
delay Delay in microseconds

Referenced by ssd1306_hard_reset(), st7565r_hard_reset(), and vbat_init().

#define F_CPU   <value>

MCU Clock Frequency (Hertz).

The system frequency.

Deprecated:
The F_CPU configuration constant is used for compatibility with the Busy-Wait Delay Routines routines. The common loop-based delay routines are designed to use the Clock Management modules while anticipating support for legacy applications assuming a statically defined clock frequency. Applications using a statically configured MCU clock frequency can define F_CPU (Hertz), in which case the common delay routines will use this value rather than calling sysclk_get_cpu_hz() to get the current MCU clock frequency.

This is the expected frequency (Hz) of the CPU. This value has to be defined at the compiler level and it is only used to compute the TC count reference, i.e., not to set the system clock. Therefore, this value should be consistent with the system clock settings in the main application. However, this constant could be used to test the self-diagnostic routine, i.e., a wrong value could be set to check whether the failure is detected.

Note:
The system runs from the internal 2Mhz RC oscillator by default.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines