Offline
Newbie
Karma: 0
Posts: 15
|
 |
« on: February 12, 2013, 08:17:02 am » |
Bonjour, je suis un nouveau et j'ai des soucis de programmation concernant un Word comment fabrique un Word (16 bits) avec 1 seul bit à 0 en position i (ex: 1111011111111111) ? Merci! 
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Edison Member
Karma: 12
Posts: 1800
There is an Arduino for that
|
 |
« Reply #1 on: February 12, 2013, 08:37:31 am » |
Il aurait été mieux de créer un nouveau topic. La version longue int monWord=0; int i mesDecalage=11; int monWord2 = 0xF7FF;
monWord= 1 << mesDecalage; // met un 1 à la position mesDecalage monWord2 |= monWord; // Force le bit mesDecalage à 1 dans monWord2; La version courte int i mesDecalage=11; int monWord2 = 0xF7FF;
monWord2 |= 1 << mesDecalage; // met un 1 à la position mesDecalage dans monWord2
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 15
|
 |
« Reply #2 on: February 12, 2013, 10:24:53 pm » |
salut, C'est sur base de certaines règles du forum que j'ai pas créer un nouveau Topic! Mais, je ne sais pas si quelqu'un peut mieux m'expliquer qu'est ce qu' un " Word " ? Car, j'ai les doc dessus et je n'y comprends rien ? Merci  !
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4321
Arduino Hacker
|
 |
« Reply #3 on: February 13, 2013, 03:48:17 am » |
Bonjour, comment fabrique un Word (16 bits) avec 1 seul bit à 0 en position i (ex: 1111011111111111) ?
Comme cela : valeur = 0xFFFF ^ (1 << i); salut, C'est sur base de certaines règles du forum que j'ai pas créer un nouveau Topic!
Et bien tu ferais mieux de les relire, c'est exactement le contraire qu'on demande  un problème = un topic Mais, je ne sais pas si quelqu'un peut mieux m'expliquer qu'est ce qu' un " Word " ?
"Word" en informatique = "un mot" = une valeur sur 2 octets.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 15
|
 |
« Reply #4 on: March 04, 2013, 04:17:45 am » |
Bonjour, et Merci je vais ouvrir un notre topic . 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #5 on: March 04, 2013, 05:07:17 am » |
Heuuuu... au cas ou tu l'aurais pas remarqué, le topic à été scindé en deux et c'est déjà un nouveau sujet 
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 15
|
 |
« Reply #6 on: March 04, 2013, 06:01:42 am » |
Bonjour , Juste pour savoir , si je fais ceci : word= ~ ( 1<<i ) Cela veut dire que j'ai créé un word qui fait quoi ?
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Online
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #7 on: March 04, 2013, 07:05:38 am » |
Si i = 3 : 1<<3 = 1000 et ~1000 = 0111
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Edison Member
Karma: 12
Posts: 1800
There is an Arduino for that
|
 |
« Reply #8 on: March 04, 2013, 07:10:44 am » |
Juste pour savoir , si je fais ceci : word= ~ ( 1<<i ) Cela veut dire que j'ai créé un word qui fait quoi ? 1<<i: décale 1 de i position sur la gauche ~ : donne complément de la valeur en argument donc au bout du compte ta variable word contient un mot où tous les bits sont à 1 sauf le bit i qui est à zéro.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 15
|
 |
« Reply #9 on: March 04, 2013, 08:16:58 am » |
Bonjour,
ok! je comprends maintenant .
donc , si je fais : word = ~ ( 2<<i) ; veux dire que je décale 2 de i position vers la gauche
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 15
|
 |
« Reply #10 on: March 04, 2013, 08:36:37 am » |
En fait, le problème est que je dois créer au moins 4 " word " différents dont le premier word est : word =~ ( 1<< i );
Merci!
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 15
|
 |
« Reply #11 on: March 04, 2013, 08:53:50 am » |
donc, selon b@tto : si i= 4 word = 2<<i => word = 0000000000100000 et word =~ ( 2<<i); => word = 1111111111011111 ? Le problème est que selon de bout du code que voici i = 16 mais devrait passer à 72 et je dois en créer plusieurs word byte compte_conection; word lecture;
compte_conection=0; // le compteur de sorties connectées
for(int i=0;i<16;i++) { word w =~(1<<i); WritePCF16(1,w); // envoyer ce word à'un PCF SORTIES delay(10); lecture=ReadPCF16(0); // lecture des entrées sur un PCF ENTREES, delay(10); Serial.print("Sortie ");Serial.print(i);Serial.print(": ");Serial.print(lecture,BIN); if(lecture!=0xFFFF) { // on à detecté une ou plusieurs entrées à 0, elles sont donc connectées à la sortie i liste_raccords[compte_conection].frompin=i; // on sauvegarde la pin sortie dans la liste decompose(lecture,compte_conection); // on regarde et sauvegarde la ou les pin d'entrées connectées compte_conection++; // et une connexion détectée de plus } }
merci !
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Edison Member
Karma: 12
Posts: 1800
There is an Arduino for that
|
 |
« Reply #12 on: March 04, 2013, 10:29:04 am » |
donc , si je fais : word = ~ ( 2<<i) ; veux dire que je décale 2 de i position vers la gauche Je ne suis pas certain de comprendre ton problème. En général, cette syntaxe est utilisée pour créer des masques afin d'isoler un(ou des) bit(s). Si tu nous expliquais clairement le besoin.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 15
|
 |
« Reply #13 on: March 04, 2013, 12:41:37 pm » |
Bonsoir,
en fait, j'utilise des expanders PCF8575 qui a l'aide de mon Arduino .Je pourrais gérer la continuité d'un certain nombre de fils qui sera relié un à un aux broches de mes expanders. et je pense qu'avec un word je pourrais un à un vérifier la continuité entre l'entrée et la sortie d'un fils.
et dont je veux partie du code source que j'ai posté pour évoluer, il n'a pas été écrit pas moi j'essaie juste de le comprendre pour pouvoir avancer dans mon travail.
Voilà et Merci !
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Online
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #14 on: March 04, 2013, 12:59:02 pm » |
Si je comprends bien : tu as deux PCF, relié par un câble que tu veux tester ?
|
|
|
|
|
Logged
|
|
|
|
|
|