打开例程很简单只要在Atmel Studio6.2的环境下,插入开发板:
这个是个ASF函数库中的函数。
delay.h
它利用sysclk_get_cpu_hz()把sysclk_init()的时钟调出来。
而delay.h中也只有四个可调函数:
#define delay_init(fcpu_hz)
/**
* [url=home.php?mod=space&uid=82890]@DEF[/url] delay_s
* [url=home.php?mod=space&uid=247401]@brief[/url] Delay in seconds.
* @param delay Delay in seconds
*/
#define delay_s(delay) cpu_delay_ms(1000 * delay, F_CPU)
/**
* @def delay_ms
* @brief Delay in milliseconds.
* @param delay Delay in milliseconds
*/
#define delay_ms(delay) cpu_delay_ms(delay, F_CPU)
/**
* @def delay_us
* @brief Delay in microseconds.
* @param delay Delay in microseconds
*/
#define delay_us(delay) cpu_delay_us(delay, F_CPU)
而主程序更简单只有几行:
#include <board.h>
#include <delay.h>
#include <gpio.h>
int main(void)
{
sysclk_init();
board_init();
while (true) {
for (int i = 0; i < 5; i++) {
gpio_toggle_pin(LED0_GPIO);
delay_s(1);
}
for (int i = 0; i < 50; i++) {
gpio_toggle_pin(LED0_GPIO);
delay_ms(100);
}
for (int i = 0; i < 5000; i++) {
gpio_toggle_pin(LED0_GPIO);
delay_us(100);
}
}
}
运行结果:
板子上的LED0闪几下然后一灭一亮,又一灭一亮,反复循环。
|