une traduction de code svp!

Pour parler spécifiquement de tel ou tel projet
Répondre
mrbbp
Messages : 73
Enregistré le : sam. 5 nov. 2016 15:00

une traduction de code svp!

Message 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
éric - bricodeur, graphiste du dimanche, enseignant

Avatar du membre
alain
Messages : 234
Enregistré le : sam. 5 nov. 2016 20:56

Re: une traduction de code svp!

Message 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

mrbbp
Messages : 73
Enregistré le : sam. 5 nov. 2016 15:00

Re: une traduction de code svp!

Message 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

é.
éric - bricodeur, graphiste du dimanche, enseignant

mrbbp
Messages : 73
Enregistré le : sam. 5 nov. 2016 15:00

Re: une traduction de code svp!

Message par mrbbp »

Et LSBFIRST c'est le codage octet de droite à gauche (normal en fait)?
éric - bricodeur, graphiste du dimanche, enseignant

Avatar du membre
alain
Messages : 234
Enregistré le : sam. 5 nov. 2016 20:56

Re: une traduction de code svp!

Message par alain »

il me semble que oui

Répondre