当前位置: 首页 > 文档资料 > 五天入门物联网 >

1.6.5.3 LED

优质
小牛编辑
131浏览
2023-12-01

下一步是在例程中添加一个LED与我们的应用程序交互。

你必须添加一个管理LED库的头文件dev/leds.h。你可以在core/dev/leds.h中查看相关函数。

相关函数:

unsigned char leds_get(void);
void leds_set(unsigned char leds);
void leds_on(unsigned char leds);
void leds_off(unsigned char leds);
void leds_toggle(unsigned char leds);

正常情况下,所有的平台都包含下面的LED:

LEDS_GREEN
LEDS_RED
LEDS_BLUE
LEDS_ALL

在Z1 mote中,这些LED相关宏定义在platform/z2/platform-conf.h中。

RE-Mote使用一个RGB LED——在一个设备中有三个通道的LED,可以显示任何红、绿、蓝组合的颜色。在头文件platforms/zoul/remote/borad.h中有如下定义:

LEDS_LIGHT_BLUE
LEDS_YELLOW
LEDS_PURPLE
LEDS_WHITE

现在,我们只将红色LED打开,看看会发生什么。创建一个新的例程文件,并命名为test-leds.c:

#include "contiki.h"
#include "dev/leds.h"
#include <stdio.h>
/*-------------------------------------------------*/
PROCESS(test_leds_process, "Test LEDs");
AUTOSTART_PROCESSES(&test_leds_process);
/*-------------------------------------------------*/
PROCESS_THREAD(test_leds_process, ev, data)
{
   PROCESS_BEGIN();
   leds_on(LEDS_RED);
   PROCESS_END();
}

编译、加载这个新工程:

make clean && make test-leds.upload

命令make clean用来删除先前编译生成的目标。

现在,红色LED应该是亮着的!

如果你修改了源代码,你必须重新编译,否者你所做的修改不会被加载到硬件中。我们总是推荐在编译之前使用make clean命令清除之前生成的目标文件。