iteration d'un hexa dans une chaine

bonjour tout le monde.

je dois faire un projet arduino où j'envoie des séquences de bits vers des rubans leds pour afficher du texte.

par exemple pour écrire un 0, j'envoie ça:
0x7c,0x8a,0x92,0xa2,0x7c,0x00

7c=> 1111100 => signifie que les 5 rubans du haut vont allumer leur led, et pas les deux derniers...

j'aimerais créer un texte déroulant.

aussi j'aimerais rajouter à chaque boucle un 0x00 pour créer un décalage.

voici la séquence que j'aimerais créer:

loop1: 0x7c,0x8a,0x92,0xa2,0x7c,0x00

loop2: 0x00,0x7c,0x8a,0x92,0xa2,0x7c,0x00
loop3:0x00,0x00,0x7c,0x8a,0x92,0xa2,0x7c,0x00
loop4:0x00,0x00,0x00,0x7c,0x8a,0x92,0xa2,0x7c,0x00
loop5:0x00,0x00,0x00,0x7c,0x8a,0x92,0xa2,0x7c,0x00
....
et ainsi de suite...

avez vous une idée sur comment rajouter à chaque loop, un '0x00' en début de chaîne ?
merci par avance !

Dans le principe, ce n'est pas très compliqué : mais ça dépend de la manière dont tu le mets en oeuvre.
Si tu utilises un tableau de valeurs il te suffit de les décaler "vers la droite" : en commençant par la fin, tu déplaces la données 'n' dans la case 'n+1' et ceci de proche en proche jusqu'à la donnée 0. Tu mets la nouvelle valeur (0x00) dans la case 0.

merci lesept de ta réponse !
j'ai trouvé cette solution qui me convient parfaitement: :slight_smile:

int data[] = {0x7c,0x8a,0x92,0xa2,0x7c};

for (int scroll = 0; scroll < DISPLAY_SIZE; scroll++) {
  // Zeros to scroll
  for (int i = 0; i < scroll; i++){
    display(0);
  }
  //Character to scroll
  for (int j = 0; (j < DATA_SIZE) && ((j+i) < DISPLAY_SIZE); j++){
    display(data[j]);
  }
}