AVR单片机教程——闪烁LED

上次我们把LED点亮了。你可能已经试过把 LED_RED 换成其他灯,也可能已经用 led_on() 把所有LED一起点亮了。但是LED点亮以后,程序就退出了,之后LED一直没有暗,直到没有供电。这一次,我们用程序来控制LED的亮和暗。

新建一个项目,在项目属性中添加库libee1,将配置改为Release。这是本教程现阶段中每一次新建项目都要做的。我刚才尝试用project template简化,然而设置无法导入。

默认生成的main.c中的内容我们还是不要,全部删除后敲入以下代码:

 1 #include <ee1/led.h>
 2 #include <ee1/delay.h>
 3 
 4 int main()
 5 {
 6     led_init();
 7     while (1)
 8     {
 9         led_set(LED_RED, LED_ON);
10         delay(500);
11         led_set(LED_RED, LED_OFF);
12         delay(500);
13     }
14 }

分析一下这段代码:

第2行包含了一个头文件 delay.h ,它提供了 delay 函数,用于设置一定时长的延时。第10行和第12行用这个函数来延时500毫秒。

第9行和第11行分别让红色LED开启与关闭。

while (1) 表示无限循环,循环的周期是1秒多一点,1秒是两个500毫秒相加,多一点是因为两个 led_set 的调用也需要时间。

F5、F6以后,你会发现开发板上的红色LED以1秒为周期闪烁。

 

上一篇:点亮第一个LED

下一篇:暂无

 

上一篇:AVR单片机教程——旋转编码器


下一篇:VSCode配置arduino+esp8266开发环境全教程