3.5.3 在例子中添加一个 LED

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

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

相关函数:

  1. unsigned char leds_get(void);
  2. void leds_set(unsigned char leds);
  3. void leds_on(unsigned char leds);
  4. void leds_off(unsigned char leds);
  5. void leds_toggle(unsigned char leds);

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

  1. LEDS_GREEN
  2. LEDS_RED
  3. LEDS_BLUE
  4. LEDS_ALL

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

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

  1. LEDS_LIGHT_BLUE
  2. LEDS_YELLOW
  3. LEDS_PURPLE
  4. LEDS_WHITE

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

  1. #include "contiki.h"
  2. #include "dev/leds.h"
  3. #include <stdio.h>
  4. /*-------------------------------------------------*/
  5. PROCESS(test_leds_process, "Test LEDs");
  6. AUTOSTART_PROCESSES(&test_leds_process);
  7. /*-------------------------------------------------*/
  8. PROCESS_THREAD(test_leds_process, ev, data)
  9. {
  10. PROCESS_BEGIN();
  11. leds_on(LEDS_RED);
  12. PROCESS_END();
  13. }

编译、加载这个新工程:

  1. make clean && make test-leds.upload

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

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

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