Exercice : Structure "switch...case"
Soit le programme suivant :
1
/* Principaux réglages */
2
3
4
5
6
7
8
9
10
/* Variables */
11
byte port;
12
13
/* Initialisations */
14
void setup() {
15
DDRD = DDRD | B00110000;
16
DDRD = DDRD & B00111111;
17
}
18
19
/* Boucle pricipale */
20
void loop() {
21
port = PIND & B11000000;
22
port = port >> 6;
23
switch(port){
24
case 1 : {
25
digitalWrite(PORT_LED_ROUGE, ALLUME);
26
delay(100);
27
digitalWrite(PORT_LED_ROUGE, ETEINT);
28
delay(1000);
29
break;
30
}
31
case 3 : {
32
digitalWrite(PORT_LED_ROUGE, ALLUME);
33
delay(100);
34
digitalWrite(PORT_LED_VERTE, ALLUME);
35
delay(1000);
36
digitalWrite(PORT_LED_ROUGE, ETEINT);
37
delay(1000);
38
digitalWrite(PORT_LED_VERTE, ETEINT);
39
delay(100);
40
break;
41
}
42
}
43
}
Question
Il est demandé de compléter le programme précédent pour que les cas non prévus conduisent à l'affichage d'un message d'erreur sur le moniteur. A noter que deux solutions sont possibles.