la fonction display
prend en paramètre un nombre (idéalement de 4 chiffres ou moins) genre 1234 et dans la première boucle for le décompose en ces chiffres élémentaires et les range dans le tableau disp
la boucle fait cela en utilisant le modulo et la division:
1234 % 10 ==> c'est le reste de la division par 10 de 1234. comme 1234 = 123*10 + 4, le modulo c'est 4, donc bien le dernier élément de notre nombre. on range ça dans disp[ 0 ]
ensuite ils font val/=10; --> c'est à dire qu'ils mettent dans val (valeur entière) le résultat de val divisé par 10.
1234 / 10 en nombre entier c'est 123.
et on recommence
123 % 10 ==> c'est le reste de la division par 10 de 123. comme 123 = 12*10 + 3, le modulo c'est 3, donc bien le dernier élément de notre nombre. on range ça dans disp[ 1 ]
ensuite ils font val/=10; --> c'est à dire qu'ils mettent dans val (valeur entière) le résultat de val divisé par 10.
123 / 10 en nombre entier c'est 12.
12 % 10 ==> c'est le reste de la division par 10 de 12. comme 12 = 1*10 + 2, le modulo c'est 2, donc bien le dernier élément de notre nombre. on range ça dans disp[ 2 ]
ensuite ils font val/=10; --> c'est à dire qu'ils mettent dans val (valeur entière) le résultat de val divisé par 10.
12 / 10 en nombre entier c'est 1.
1 % 10 ==> c'est le reste de la division par 10 de 1. comme 1 = 0*10 + 1, le modulo c'est 1, donc bien le dernier élément de notre nombre. on range ça dans disp[ 3 ]
Là on a finit la boucle et le tableau disp
contient {4,3,2,1}
et il se trouve que c'est ce qu'attend la fonction tm1636.display()
pour afficher cela sur votre afficheur (càd les chiffres individuels qui composaient votre nombre).