Bonjour,
Quelle sont les variables que l'on peux mettre sous builder sous 16 bits ?
J'ai entendu parler de short int, est-ce une 16 bits ?
Bonjour,
Quelle sont les variables que l'on peux mettre sous builder sous 16 bits ?
J'ai entendu parler de short int, est-ce une 16 bits ?
En général oui mais tu peux faire le test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if(sizeof(short int) == 2) { ... }
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
J'ai fait le test avec ça et malheureusement ça ne marche pas mais je sais pourquoi.. mon port série est configuré en 8 bits, ne peut-on pas le mettre en 16 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 short int tableau[1] = {0x0000} ComPort1->Write(tableau, 1);
En général, un port série est utilisé pour envoyer des octets (donc 8 bits). Je ne connais pas de ports série sur lequel tu peux envoyer des words (2 octets)
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Je n'ai jamais utilisé de port série mais
ça revient pas au même?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 short int tableau[1] = {0x0000} ComPort1->Write((char*)tableau, sizeof(short int)*1);
Sinon, quand on veut un type codé sur un certain nombre de bits ce n'est pas une bonne idée de faire des suppositions sur le types normaux, ils sont susceptibles de changer quand on bascule vers une autre archi/un autre os/voire même un autre compilo. Il existe des typedefs pour ça dans un grand nombre de biblios y compris dans la biblio standard (si elle est suffisamment à jour). Dans ce dernier cas, le header à inclure est <stdint.h>.
en effet, ça reviens au même mais bon but était d'envoyer un signal de 16 bits. Bref ce n'est pas possible.
Autre question, peut-on mettre le port TX au niveau logique 1 ou 0 ? (sans avoir de trames, bit de start ou bit de stop...)
Peut être en jouant avec les signaux RTS/CTS et DTR/DSR. Il existe une notion de BREAK, il faut voir comment le signal TX est positionné lors d'un break.
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
j'ai cherché un peu ce qu'il y avait sur le break mais rien de très intéressant, disons qu'il n'influe pas sur le TX.
Bon malheureusement je vais devoir me résoudre à acheter un adaptateur usb - dmx... Je pensais pouvoir le faire avec une simple trame rs-232 mais ce 88us me fou tout en l'air !
merci pour tout![]()
Salut,
Si tu veux jouer avec des bits, peut être devrais tu te tourner vers... la classe bitset... tout simplement
Tu verra, elle est particulièrement utile pour la gestion des bits![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
bitset ?? c'est la première fois que j'en entend parler !
Aurait-tu un tuto, une page sur laquelle on en parle ?
J'ai regardé sur le net.. pas grand chose
oula je ne comprend pas tout ! A quoi peut service ce bitset ? Pour ma part j'aimerais juste enlever un bit de stop au début de ma trame qui fou sa me***.
N'est-ce pas plutôt un bit de start que tu veux retirer, s'il est au début?
Attention, l'UART fait la différence : Y'en a un des deux qui est plus ou moins réglable, l'autre non...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Pas tout à fait:
Permet d'être plus sûr, étant donné que sizeof() renvoie un nombre de byte, et que le nombre de bits d'un byte n'est pas défini (et vous n'avez certainement pas eu le plaisir de bosser avec des bytes de 32 bits...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (std::numeric_limits<short>::digit == 16) { }
Quoi qu'il en soit, la taille d'un short n'est pas définie par le standard C++: elle peut donc varier d'une configuration à l'autre. Seule la relation
est définie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (sizeof(char) == 1) <= sizeof(short) <= sizeof(int) <= sizeof(long)
Si ton compilateur est compatible avec le standard C99 (ce n'est pas le cas de Visual C++ .Net 2005), tu peux utiliser les types intN_t (int8_t, int16_t, ...) et uintN_t (uint8_t, uint16_t) définis dans <stdint.h>. La prochaine norme C++ définira aussi ces types (ce qui n'est pas le cas dans la version 2003 du standard).
Sinon, tu peux aussi décider de te limiter à un compilateur que tu connais, et vogue la galère. Une fois le programme compilé, la taille des types ne change pas, donc si elle est connue au moment de la compilation, tout est ok.
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.
Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.
tibo7: En clair, tu cherches à communiquer par port série avec un truc qui n'est pas compatible RS232 ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Chez moi std::numeric_limits<short>::digit vaut 15 et n'a peu de rapport avec la taille d'un type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (sizeof(short)*CHAR_BIT == 16) { }
C'est exactement la raison pour laquelle on déconseille de faire la moindre supposition sur la taille des types de base...
C'est aussi la raison pour laquelle je proposais d'utiliser un bitset.
Ainsi, si tu crée un bitset d'une taille de... 16 bits en l'occurrence, tu place les différents bits à la valeur qui t'intéresse, puis il ne te reste "plus qu'à" les envoyer dans l'ordre dans lequel ils sont attendus![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.
Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.
Partager