matt_18
Messages postés13Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention 7 juillet 2009
-
21 mars 2006 à 20:40
matt_18
Messages postés13Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention 7 juillet 2009
-
21 mars 2006 à 21:49
Voila je vous expose mon problème :
Je suis étudiant en BTS electronique et en ce moment nous sommes sur un projet de panneau d'affichage à message variable créé avec des matrices à LEDS 5*8. Dans la composition des groupes, je suis délégué à la création de l'interface graphique VB qui permettra d'envoyer les messages au panneau d'affichage, grace à une connection RS232. Le programme analyse une image noir et blanc de 90px par 32px et stock dans un tableau les états des diodes (0-> Allumées ; 1-> Eteintes). L'afficheurs est divisé en 360 colonnes (4 fois 90 colones de 7 leds). Le problème est que le composant MSCOMM de Visual Basic 6 envoye le code ASCII de chaque caractères compris dans ma variable à envoyer alors que ce que je dois envoyer sont des bits correspondants à l'état des diodes des afficheurs. La variable à envoyer est donc un octect (8bits) contenant les états des leds d'une colonne.
J'aurais donc voulu savoir si quelqu'un pouvais me dire comment envoyer du binaire ou de l'hexa, soit en utilisant le composant MSCOM (ce qui me parait impossible, mais bon on sais jamais), soit en utilisant un API ou une DLL quelconque permettant l'envoie de ces 8 bits, ou une autre méthode ... La seule contrainte étant que la liaison doit se faire par RS232 (COM).J'espère que quelqu'un à la solution ...
En attendant ... merci
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 21 mars 2006 à 21:04
Salut
Si tu avais un peu lu les sources qui parlent de RS ou encore les multiples questions du forum sur MSComm à propos des envois autres que Ascii, tu saurais que :Un code ascii 1 byte 8 bits
Pour ranger 8 bits dans un entier (révise tes cours d'infos), il suffit d'élever 2 à la puissance du rang du bit :
Exemple : Pour activer les bits de rang 1, 3 et 7 d'un octet :
monByte = 2^(1-1) + 2^(3-1) + 2^(7-1)
Les -1 sont là car les bits se numérotent de 0 à 7 (et pas de 1 à 8)
Une fois que tu auras ton Byte, il suffira de l'envoyer dans le buffer de la RS, éventuellement sous forme Ascii :
Chaine_à_envoyer = Chr(monByte)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)