J'ai acheté un écran LCD Wingstar 144x32 à bas prix, parce que ce serait bien de le brancher sur mon NodeMCU pour montrer quelques informations. Ce que n'était pas attendait, c'était que nulle part sur Internet pourrais-je trouver une bibliothèque de travail pour ce LCD. Alors j'ai pensé que j'écrirais le mien.Bit d'instruction série pas clair
J'ai passé plusieurs heures à lire le datasheet, essayant de comprendre comment les instructions SPI ont été transmises à l'écran LCD. J'ai alors découvert que sur un autre site il y avait un exemple de code pour l'Arduino (qui est faaar trop long pour comprendre correctement) et un pour l'ATMega, qui est court et beaucoup plus facile à comprendre.
J'ai ouvert les fichiers et j'ai vu que l'interfaçage est assez "simple", si je puis dire. Il ressemble à ceci:
write_command(0x38); // function set -- 8 bit mode, basic instruction set
write_command(0x0F); // display control -- cursor on, blinking
write_command(0x01); // display clear
write_command(0x06); // entry mode -- cursor moves right, address counter increased by 1
write_command
est pas important de mentionner ici, parce qu'il envoie uniquement la commande via SPI:
void write_command(unsigned char command) {
SPI_WriteByte(0xF8); // send command header
SPI_WriteByte(command&0xF0); // send high nibble
_delay_us(250);
SPI_WriteByte((command<<4)&0xF0); // send low nibble
_delay_us(750);
}
En dépit de ne pas comprendre ce que le &0xF0
ou <<4)&0xF0
faire, je évolué.
J'ai choisi au hasard l'instruction "ensemble de fonctions" et converted it au texte binaire pour voir si c'est ce que je pense.
0x38 = 0000 0000 0011 1000
Hors les 8 premiers caractères (Il ne serait pas logique avec ceux), je suis parti avec 00111000
, ce qui serait logique de le mettre là:
Parce que: DL = 1 (8bit interface sélectionnée, comme le commentaire dans le code pour le ATMega - great) et RE = 0 (Instruction de base, comme dans le commentaire dans le code de l'ATMega - génial!).
Mais maintenant la vraie question: Quels sont ces "X" dans les codes d'instruction? J'ai déjà recherché toute la fiche technique et n'ai rien trouvé à propos de ces "X". Pourquoi sont-ils incompatibles? Que sont-ils censés faire là-bas?
J'espère que je n'ai pas raté trop mauvais.
Toute aide est fortement appréciée.
Ce sont des bits «ne vous souciez pas». En lecture, ils ne contiennent aucune information utile. En écriture, ils ne font rien. –
@MartinJames Cela signifie que je peux définir ces bits 1 ou 0 "de mon goût" car ils sont inutiles dans cette instruction en cours? – Fusseldieb
Oui, et en lecture, ignorez simplement leurs valeurs. –