Page 1 sur 1

une traduction de code svp!

Posté : jeu. 31 août 2017 00:00
par mrbbp
bonjour à tous...
je tente de comprendre une lib arduino pour utiliser un afficheur filpdot (électromagnétique) avec des registres à décalage et je comprends pas bien ce que fait le code sur les lignes qui suivent...

Code : Tout sélectionner

void FlipDot_5x7::displayPixel(int16_t x, int16_t y, boolean color) {
	if (x < FLIPDOT_MODULE_WIDTH && y < FLIPDOT_MODULE_HEIGHT) {
		// DR R0 R1 R2 DC C0 C1 C2
		uint8_t data = color != _invert;
		data |= y << 1;
		data |= (color == _invert) << 4;
		data |=  x << 5;
		shiftOut(_data, _clock, LSBFIRST, data);
	}
}
Le code allume un pixel sur l'afficheur 5x7
on fournit les cordonnées en x, y et couleur 0 ou 1

Code : Tout sélectionner

// DR R0 R1 R2 DC C0 C1 C2
ça doit être le format nécessaire,
j'identifie pas à quoi sert DR et DC
74HCT238 decodes three binary weighted address inputs (A0, A1 and A2) to eight mutually exclusive outputs (Y0 to Y7).
R0,R1,R2 ce sont les 3 bits pour adresser la ligne.
Le pcb contient deux 74HC238 qui transforment une adresse 3bits en une adresse 8 bits (si j'ai bien compris)
C0,C1, C2 les 3 bits pour l'adresse de la colonne

ce que je pige pas c'est l'opérateur: |=
Est ce que ça décale les bits à gauche de 1 ou 4 ou 5 rangs... mais sous quelle condition?
et le LSBFIRST?
ça fait quoi exactement (c'est l'ordre des octets)?

_data et _clock sont les pins sur l'arduino...

Je voudrais piloter l'afficheur avec autre chose qu'une arduino (qui n'a pas bcp de ram pour des chaines de caractères) et la lib arduino ne gère pas l'affichage des caractères accentués :s

merci de votre aide

éric

Re: une traduction de code svp!

Posté : jeu. 31 août 2017 07:13
par alain
c'est une espèce d'addition binaire.
Tu mets deux nombres l'un au-dessus de l'autre, et tu les additionne bit à bit. 1 + 1 = 1, 1+0=1, 0+0=0.
Ex: 10101010+10000011=10101011
à confirmer par les autres,SVP merci

Re: une traduction de code svp!

Posté : jeu. 31 août 2017 12:34
par mrbbp
Merci papa22
Donc ça fait une "addition" en decalant l'entrée de x pas à gauche c'est ça?
Et pour le reste, une idée?
Sivouplémerci

é.

Re: une traduction de code svp!

Posté : jeu. 31 août 2017 12:38
par mrbbp
Et LSBFIRST c'est le codage octet de droite à gauche (normal en fait)?

Re: une traduction de code svp!

Posté : jeu. 31 août 2017 15:05
par alain
il me semble que oui