Loading...
Searching...
No Matches
led.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Freie Universität Berlin
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
30
31#include "board.h"
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
41#ifndef LED0_ON
42#define LED0_ON
43#define LED0_OFF
44#define LED0_TOGGLE
45#else
46#define LED0_IS_PRESENT
47#endif
48
49#ifndef LED1_ON
50#define LED1_ON
51#define LED1_OFF
52#define LED1_TOGGLE
53#else
54#define LED1_IS_PRESENT
55#endif
56
57#ifndef LED2_ON
58#define LED2_ON
59#define LED2_OFF
60#define LED2_TOGGLE
61#else
62#define LED2_IS_PRESENT
63#endif
64
65#ifndef LED3_ON
66#define LED3_ON
67#define LED3_OFF
68#define LED3_TOGGLE
69#else
70#define LED3_IS_PRESENT
71#endif
72
73#ifndef LED4_ON
74#define LED4_ON
75#define LED4_OFF
76#define LED4_TOGGLE
77#else
78#define LED4_IS_PRESENT
79#endif
80
81#ifndef LED5_ON
82#define LED5_ON
83#define LED5_OFF
84#define LED5_TOGGLE
85#else
86#define LED5_IS_PRESENT
87#endif
88
89#ifndef LED6_ON
90#define LED6_ON
91#define LED6_OFF
92#define LED6_TOGGLE
93#else
94#define LED6_IS_PRESENT
95#endif
96
97#ifndef LED7_ON
98#define LED7_ON
99#define LED7_OFF
100#define LED7_TOGGLE
101#else
102#define LED7_IS_PRESENT
103#endif
104
108#if defined(LED7_IS_PRESENT)
109#define LED_NUMOF 8
110#elif defined(LED6_IS_PRESENT)
111#define LED_NUMOF 7
112#elif defined(LED5_IS_PRESENT)
113#define LED_NUMOF 6
114#elif defined(LED4_IS_PRESENT)
115#define LED_NUMOF 5
116#elif defined(LED3_IS_PRESENT)
117#define LED_NUMOF 4
118#elif defined(LED2_IS_PRESENT)
119#define LED_NUMOF 3
120#elif defined(LED1_IS_PRESENT)
121#define LED_NUMOF 2
122#elif defined(LED0_IS_PRESENT)
123#define LED_NUMOF 1
124#else
125#define LED_NUMOF 0
126#endif
127
129
134#define LED_ON(id) LED ## id ##_ON
135#define LED_OFF(id) LED ## id ## _OFF
136#define LED_TOGGLE(id) LED ## id ##_TOGGLE
137
145static inline void led_on(unsigned id)
146{
147 switch (id) {
148 case 0: LED0_ON; break;
149 case 1: LED1_ON; break;
150 case 2: LED2_ON; break;
151 case 3: LED3_ON; break;
152 case 4: LED4_ON; break;
153 case 5: LED5_ON; break;
154 case 6: LED6_ON; break;
155 case 7: LED7_ON; break;
156 }
157}
158
166static inline void led_off(unsigned id)
167{
168 switch (id) {
169 case 0: LED0_OFF; break;
170 case 1: LED1_OFF; break;
171 case 2: LED2_OFF; break;
172 case 3: LED3_OFF; break;
173 case 4: LED4_OFF; break;
174 case 5: LED5_OFF; break;
175 case 6: LED6_OFF; break;
176 case 7: LED7_OFF; break;
177 }
178}
179
187static inline void led_toggle(unsigned id)
188{
189 switch (id) {
190 case 0: LED0_TOGGLE; break;
191 case 1: LED1_TOGGLE; break;
192 case 2: LED2_TOGGLE; break;
193 case 3: LED3_TOGGLE; break;
194 case 4: LED4_TOGGLE; break;
195 case 5: LED5_TOGGLE; break;
196 case 6: LED6_TOGGLE; break;
197 case 7: LED7_TOGGLE; break;
198 }
199}
200
202
203#ifdef __cplusplus
204}
205#endif
206
#define LED2_ON
Switch on RX LED yellow.
Definition board.h:49
#define LED2_OFF
Switch off RX LED yellow.
Definition board.h:50
#define LED2_TOGGLE
Toggle User RX LED yellow.
Definition board.h:51
static void led_on(unsigned id)
Turn on an LED.
Definition led.h:145
static void led_off(unsigned id)
Turn off an LED.
Definition led.h:166
static void led_toggle(unsigned id)
Toggle an LED.
Definition led.h:187