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 
34 #include "board.h"
35 
36 #ifdef __cplusplus
37 extern "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 
137 #define LED_ON(id) LED ## id ##_ON
138 #define LED_OFF(id) LED ## id ## _OFF
139 #define LED_TOGGLE(id) LED ## id ##_TOGGLE
148 static 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 
169 static 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 
190 static 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 
206 #ifdef __cplusplus
207 }
208 #endif
209 
#define LED3_TOGGLE
defined empty
Definition: led.h:71
#define LED3_OFF
defined empty
Definition: led.h:70
#define LED4_ON
defined empty
Definition: led.h:77
static void led_on(unsigned id)
Turn on an LED.
Definition: led.h:148
#define LED0_ON
defined empty
Definition: led.h:45
#define LED1_TOGGLE
defined empty
Definition: led.h:55
#define LED7_TOGGLE
defined empty
Definition: led.h:103
#define LED1_OFF
defined empty
Definition: led.h:54
#define LED7_OFF
defined empty
Definition: led.h:102
#define LED4_OFF
defined empty
Definition: led.h:78
#define LED5_TOGGLE
defined empty
Definition: led.h:87
#define LED6_OFF
defined empty
Definition: led.h:94
#define LED6_ON
defined empty
Definition: led.h:93
#define LED4_TOGGLE
defined empty
Definition: led.h:79
static void led_off(unsigned id)
Turn off an LED.
Definition: led.h:169
#define LED5_OFF
defined empty
Definition: led.h:86
#define LED1_ON
defined empty
Definition: led.h:53
#define LED2_ON
defined empty
Definition: led.h:61
#define LED2_OFF
defined empty
Definition: led.h:62
#define LED3_ON
defined empty
Definition: led.h:69
#define LED2_TOGGLE
defined empty
Definition: led.h:63
#define LED7_ON
defined empty
Definition: led.h:101
#define LED0_TOGGLE
defined empty
Definition: led.h:47
static void led_toggle(unsigned id)
Toggle an LED.
Definition: led.h:190
#define LED0_OFF
defined empty
Definition: led.h:46
#define LED5_ON
defined empty
Definition: led.h:85
#define LED6_TOGGLE
defined empty
Definition: led.h:95