📄 led.h
字号:
// This file is part of MANTIS OS, Operating System// See http://mantis.cs.colorado.edu///// Copyright (C) 2003,2004,2005 University of Colorado, Boulder//// This program is free software; you can redistribute it and/or// modify it under the terms of the mos license (see file LICENSE)/** @file sys/include/led.h * @brief Control of the onboard leds for a sensor node. * @author Jeff Rose * @date 01/24/2003 */#ifndef LED_H_#define LED_H_#define NUM_LEDS 3#ifndef PLATFORM_LINUX#include "mos.h"/* Specify the port, data direction register and pin mask. */#ifdef ARCH_AVR#define LED_PORT PORTA#define LED_DIR DDRA#define LED_MASK 0x07#define LED_ON(led) LED_PORT &= ~(1<<led)#define LED_OFF(led) LED_PORT |= (1<<led)#define LED_DISP(val) LED_PORT = ~val#elif PLATFORM_TELOSB#define LED_PORT P5OUT#define LED_DIR P5DIR#define LED_MASK ((1 << 4) | (1 << 5) | (1 << 6))#define LED_ON(led) LED_PORT &= ~(1 << (4+led))#define LED_OFF(led) LED_PORT |= (1 << (4+led))#define LED_DISP(val) do{ \ LED_PORT |= LED_MASK; \ LED_PORT &= ~((val << 4) & LED_MASK); \ }while(0) #else#error "Undfined LEDs for this platform"#endif#define LED_INIT_HARDWARE() LED_DIR |= LED_MASK;#else#include "gevent.h"#include "node_id.h"/* Provide the same interface in XMOS. * Changing LEDs sends an event to the simulator. */#define LED_ON(led) do { \ gevent_send(LED_EVENT, "ii", "%i LED_ON %x\n", \ mos_node_id_get(), state|(1<<led)); \ } while(0)#define LED_OFF(led) do { \ gevent_send(LED_EVENT, "ii", "%i LED_OFF %x\n", \ mos_node_id_get(), state&~(1<<led)); \ } while(0)#define LED_DISP(val) do { \ gevent_send(LED_EVENT, "ii", "%i LED_DISP %x\n", \ mos_node_id_get(), val); \ } while(0)#endif/** @brief Init the leds. */void led_init(void);/** @briefGet the number of leds. * @return Number of leds */uint8_t mos_led_get_num_leds(void);/** @brief Turn on a given led. * @param led Led to turn on */void mos_led_on(uint8_t led);/** @brief Turn off a given led. * @param led Led to turn off */void mos_led_off(uint8_t led);/** @brief Toggle a given led. * @param led Led to toggle */void mos_led_toggle(uint8_t led);/** @brief Blink the LED twice */void mos_led_blink(uint8_t led);/** @brief Display a given led. * @param display_value Display value */void mos_led_display(uint8_t display_value);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -