打开例程很简单只要在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闪几下然后一灭一亮,又一灭一亮,反复循环。
|