Bonjour!
je ne comprends pas comment on a obtenus les chiffres telque 011011011011 dans l'exercice ci_dessous:
Code HTML:Cadre lumineux d'une enseigne Une enseigne publicitaire est entourée d'un cadre réalisé avec des segments lumineux, selon le croquis suivant : On cherche à donner une impression de rotation, en allumant successivement les groupes de segments suivants : - S0, S1, S3, S4, S6, S7, etc (011011011011) - S1, S2, S4, S5, S7, S8, etc (110110110110) - S0, S2, S3, S5, S7, S8, etc (101101101101) On dispose d'une procédure AfficheCadre (unsigned int segments) qui affiche les segments S0 à S11 selon les bits 0 à 11 du paramètre "segments" et d'une procédure AttenteMs (int ms). Ecrivez la boucle principale du programme qui fait "tourner" le cadre dix fois dans un sens, puis dix fois dans l'autre sens. Réponse : Les motifs successible à envoyer ont été placés dans un tableau. Un index parcourt le tableau dans un sens ou dans l'autre, selon la variable "sens". Les changements de directions se font donc en repartant de la position courante, pour un effet visuel optimal. #define MaxCycle 10 // nombre de mouvements dans le cycle #define Periode 200 // attente ente chaque changement #define LgTable 3 // nombre de motifs dans la table unsigned int tableMotifs[] = {0b011011011011, 0b110110110110, 0b101101101101}; unsigned char idx=0; // index dans la table unsigned char sens=1; // sens de balayage de la table unsigned char cycle; // compteur des répétitions void loop() { for (cycle=0; cycle<(MaxCycle*LgTable); cycle++) { if (sens) { if (idx == (LgTable-1)) { idx=0;} else { idx++;} } else { if (idx == 0) { idx=LgTable-1; } else { idx--;} } AfficheCadre (tableMotifs[idx]); AttenteMs (Periode); } sens = !sens; }
-----