Loading...
Searching...
No Matches
led.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016 Freie Universität Berlin
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
9#pragma once
10
33
34#include "board.h"
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
44#ifndef LED0_ON
45#define LED0_ON
46#define LED0_OFF
47#define LED0_TOGGLE
48#else
49#define LED0_IS_PRESENT
50#endif
51
52#ifndef LED1_ON
53#define LED1_ON
54#define LED1_OFF
55#define LED1_TOGGLE
56#else
57#define LED1_IS_PRESENT
58#endif
59
60#ifndef LED2_ON
61#define LED2_ON
62#define LED2_OFF
63#define LED2_TOGGLE
64#else
65#define LED2_IS_PRESENT
66#endif
67
68#ifndef LED3_ON
69#define LED3_ON
70#define LED3_OFF
71#define LED3_TOGGLE
72#else
73#define LED3_IS_PRESENT
74#endif
75
76#ifndef LED4_ON
77#define LED4_ON
78#define LED4_OFF
79#define LED4_TOGGLE
80#else
81#define LED4_IS_PRESENT
82#endif
83
84#ifndef LED5_ON
85#define LED5_ON
86#define LED5_OFF
87#define LED5_TOGGLE
88#else
89#define LED5_IS_PRESENT
90#endif
91
92#ifndef LED6_ON
93#define LED6_ON
94#define LED6_OFF
95#define LED6_TOGGLE
96#else
97#define LED6_IS_PRESENT
98#endif
99
100#ifndef LED7_ON
101#define LED7_ON
102#define LED7_OFF
103#define LED7_TOGGLE
104#else
105#define LED7_IS_PRESENT
106#endif
107
111#if defined(LED7_IS_PRESENT)
112#define LED_NUMOF 8
113#elif defined(LED6_IS_PRESENT)
114#define LED_NUMOF 7
115#elif defined(LED5_IS_PRESENT)
116#define LED_NUMOF 6
117#elif defined(LED4_IS_PRESENT)
118#define LED_NUMOF 5
119#elif defined(LED3_IS_PRESENT)
120#define LED_NUMOF 4
121#elif defined(LED2_IS_PRESENT)
122#define LED_NUMOF 3
123#elif defined(LED1_IS_PRESENT)
124#define LED_NUMOF 2
125#elif defined(LED0_IS_PRESENT)
126#define LED_NUMOF 1
127#else
128#define LED_NUMOF 0
129#endif
130
132
137#define LED_ON(id) LED ## id ##_ON
138#define LED_OFF(id) LED ## id ## _OFF
139#define LED_TOGGLE(id) LED ## id ##_TOGGLE
140
148static inline void led_on(unsigned id)
149{
150 switch (id) {
151 case 0: LED0_ON; break;
152 case 1: LED1_ON; break;
153 case 2: LED2_ON; break;
154 case 3: LED3_ON; break;
155 case 4: LED4_ON; break;
156 case 5: LED5_ON; break;
157 case 6: LED6_ON; break;
158 case 7: LED7_ON; break;
159 }
160}
161
169static inline void led_off(unsigned id)
170{
171 switch (id) {
172 case 0: LED0_OFF; break;
173 case 1: LED1_OFF; break;
174 case 2: LED2_OFF; break;
175 case 3: LED3_OFF; break;
176 case 4: LED4_OFF; break;
177 case 5: LED5_OFF; break;
178 case 6: LED6_OFF; break;
179 case 7: LED7_OFF; break;
180 }
181}
182
190static inline void led_toggle(unsigned id)
191{
192 switch (id) {
193 case 0: LED0_TOGGLE; break;
194 case 1: LED1_TOGGLE; break;
195 case 2: LED2_TOGGLE; break;
196 case 3: LED3_TOGGLE; break;
197 case 4: LED4_TOGGLE; break;
198 case 5: LED5_TOGGLE; break;
199 case 6: LED6_TOGGLE; break;
200 case 7: LED7_TOGGLE; break;
201 }
202}
203
205
206#ifdef __cplusplus
207}
208#endif
209
#define LED2_ON
Switch on RX LED yellow.
Definition board.h:52
#define LED2_OFF
Switch off RX LED yellow.
Definition board.h:53
#define LED2_TOGGLE
Toggle User RX LED yellow.
Definition board.h:54
static void led_on(unsigned id)
Turn on an LED.
Definition led.h:148
static void led_off(unsigned id)
Turn off an LED.
Definition led.h:169
static void led_toggle(unsigned id)
Toggle an LED.
Definition led.h:190