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);
}
}
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
j'identifie pas à quoi sert DR et DC
R0,R1,R2 ce sont les 3 bits pour adresser la ligne.74HCT238 decodes three binary weighted address inputs (A0, A1 and A2) to eight mutually exclusive outputs (Y0 to Y7).
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