// Définition des LED et des poussoirs pour la carte MSP430F5529 "rouge" #define Led1On digitalWrite(P1_0, 1) #define Led1Off digitalWrite(P1_0, 0) #define InitLed1 pinMode(P1_0, OUTPUT) #define Led2On digitalWrite (P4_7, 1) #define Led2Off digitalWrite (P4_7, 0) #define InitLed2 pinMode(P4_7, OUTPUT) #define Pous1On (!digitalRead (P2_1)) #define InitPous1 pinMode(P2_1, INPUT_PULLUP) #define Pous2On (!digitalRead (P1_1)) #define InitPous2 pinMode(P1_1, INPUT_PULLUP) // Poussoir a ajouter entre Gnd et P2.2 #define Pous3On (!digitalRead (P2_2)) #define InitPous3 pinMode(P2_2, INPUT_PULLUP) void setupCarteRouge() { // procédure à appeler dans setup() InitLed1; InitLed2; InitPous1; InitPous2; InitPous3; } void setup() { setupCarteRouge(); pinMode(P2_7, OUTPUT); pinMode(P4_2, OUTPUT); } #define Aon Led1On;digitalWrite(P2_7,1) #define Aoff Led1Off;digitalWrite(P2_7,0) #define Bon Led2On;digitalWrite(P4_2,1) #define Boff Led2Off;digitalWrite(P4_2,0) #define Rec Pous1On enum {E1, E2, E3, E4} ; int etat = E1 ; void loop() { switch (etat) { case E1 : Aoff; Boff; if (Rec) {etat = E4;} else {etat = E2;} break; case E2 : Aon; Boff; if (Rec) {etat = E1;} else {etat = E3;} break; case E3 : Aon; Bon; if (Rec) {etat = E2;} else {etat = E4;} break; case E4 : Aoff; Bon; if (Rec) {etat = E3;} else {etat = E1;} break; } delay (100); // détermine la vitesse de rotation }