opération bits à bits
Répondre à la discussion
Affichage des résultats 1 à 30 sur 30

opération bits à bits



  1. #1
    pseudok

    opération bits à bits


    ------

    j' utilise une manette de wii pour faire tourner des donnés (utilisation des données d'accération de la manette)
    Utilisation d'une carte arduino

    pour avoir une rotation du servo par mouvement de la manette sur l'axe X
    j'ajoute ce code sur arduino .Est-ce que cela ressemble à une intégration ??

    accelX = ((data[2] << 2) + ((data[5] >> 2) & 0x03) - ZEROX);

    mais j'ai du mal à comprendre cette ligne .
    J'utilise le nom de variable accelX car elle est utilisé dans le diagramme de classe de la librairie wiichuck (c'est un flotan)
    mais j'ai du mal à comprendre pourquoi utiliser data[2] et data[5].


    je dois bien utiliser data[i] pour lire les infos du port série ??

    mais le 2 et le 5 , ils corresponde à quoi ??( je précise que les données d'accé sont codés sur 10bits et l'accé sur l’axe x est sur les bit 9 à 2 de l'octet 3 et sur les bit 1 et 0 de l'octet 6)

    mais aucun de ces chiffres n'est utilisé . Je crois que cela un rapport avec les opérations bits à bits
    est ce que vous pouvez m'éclairer ??

    de même , je ne vois pas a quoi servent les & et << car je sais qu'ils sont utiles pour utilisée des donnée en bits ( c'est des méthodes d'itégration que je ne comprend pas ??
    de plus pourquoi prendre un 2

    -----

  2. #2
    freepicbasic

    Re : opération bits à bits

    Comment veut tu qu'on te donne une explication d'une ligne sortie de son contexte ?
    Il faut le code entier !

    De plus tu parle de;
    port série , le nunchuck est I2C ...
    de float , les datas sont des int...

    c est quoi ce data[] et ce ZEROX ?
    La structure que j'ai trouvé sur le net est
    Code:
     private:
      uint8_t buffer[PACKAGE_LENGTH];
      int joyAxisX;
      int joyAxisY;
      int accelAxisX;
      int accelAxisY;
      int accelAxisZ;
      int buttonZ;
      int buttonC;

    Aucun lien vers un site ou autre zip ...
    A+, pat

  3. #3
    pseudok

    Re : opération bits à bits

    le nunchuck est I2C .
    est - ce que dans ce cas on ne fait plus référence au port mais on parle de protocole i2c associé au système ??

    les datas sont des int
    pourquoi les infos sont des int soit des variables entières?

    c est quoi ce data[] et ce ZEROX ?
    pour le data[] j'ai posé la question car je ne sais pas à quoi il correspond (il y a des nombre dedans . Cela dois faire référence au types de donnnés : accé, joystick ou boutons. Ces infos sont codé sur de bits spécifiques mais ces bits spécifiques ne correspondent pas aux valeurs dans
    le data ;

    le ZEROX correspond aux valeurs initiales de la manette (propre a chaque manette) . on peut voir que la manette n'a pas une accé , des valeurs de joystick nulle initialement donc il faut corriger cette erreur


    voila ce que j'ai
    http://r0sset.com/Projects/1

  4. #4
    freepicbasic

    Re : opération bits à bits

    Citation Envoyé par pseudok Voir le message
    est - ce que dans ce cas on ne fait plus référence au port mais on parle de protocole i2c associé au système ??
    question incompréhensible...
    L'I2C c est le protocole de communication avec le nunchuck


    pourquoi les infos sont des int soit des variables entières?
    10 bits c est un int, on va s'embarasser d'un float
    un int c est 16 bits il y en a 4 qui ne servent pas...


    pour le data[] j'ai posé la question car je ne sais pas à quoi il correspond (il y a des nombre dedans . Cela dois faire référence au types de donnnés : accé, joystick ou boutons. Ces infos sont codé sur de bits spécifiques mais ces bits spécifiques ne correspondent pas aux valeurs dans
    le data ;
    C est la structure !
    Mais dans to lien il n'y a pas la déclaration.
    D'ici a ce que le gars ai utilisé un float, on peut se poser la question
    une opération logique sur un float ,quelle salade ...

    le ZEROX correspond aux valeurs initiales de la manette (propre a chaque manette) . on peut voir que la manette n'a pas une accé , des valeurs de joystick nulle initialement donc il faut corriger cette erreur
    Normalement il doit y avoir 0, sinon c est un offset.

    Code:
    nunchuck.stick_x = data[0]; //8bit value
    nunchuck.stick_y = data[1];
    nunchuck.acc_x = (data[2] <> 2) & 0x03); //10bit value
    nunchuck.acc_y = (data[3] <> 4) & 0x03);
    nunchuck.acc_z = (data[4] <> 6) & 0x03);
    nunchuck.button1 = data[5] & 0x01; //boolean
    nunchuck.button2 = data[5] & 0x02;
    Code incohérent !
    Il manque une parenthèse, déjà c est faux !!!!
    exemple;
    (data[3] <> 4)
    La seule conséquence sera l’effacement de 4 bits de poids fort , généralement on fait "& 0x0FFF".
    (jamais vu un tel code)
    Puis après un mask sur 2 bits , il garde seulement 2 bits et l'opération ci dessus ne set a rien !

    bizarre garder 2 bits sur 10 ... avec une opération bidon.
    A mon avis ce code est faux.

    data[5] c'est les boutons, il attend qu'on appuie dessus ou quoi ?

    Aucun explication sur ce qu'il fait...

    On ne peut que faire des hypothèses,
    peut être qu'il veut utiliser que les 2 bits de poids fort lorsqu'on appui sur un bouton...

    Mais bon, C 'est juste le résultat de la boule de cristal de DAUDET78...
    Dernière modification par gienas ; 19/12/2014 à 06h51. Motif: Réparé la première quote non fermée
    A+, pat

  5. A voir en vidéo sur Futura
  6. #5
    freepicbasic

    Re : opération bits à bits

    https://code.google.com/p/flamingoar...5.zip&can=2&q=
    le code à l'air plus sain , mais j'ai pas testé...
    A+, pat

  7. #6
    pseudok

    Re : opération bits à bits

    int value = constrain(accelY, -180, 180);
    donc ici le int indique non pas seulement que la variable value est entière mais aussi qu'elle extrait 16 bits ??
    mais dans ce cas je sais que accelY présente 8 BITS donc il en manque 8??

    Normalement il doit y avoir 0, sinon c est un offset.
    un 0 pourquoi . en tout cas j'ai pu m'apercevoir que les valeurs joyX,joyY ,AccelX, AccelY ne sont pas nulles à l'instant initial (mémoire) .
    mais son soit + ou - et cela dépend de la manette . j'ai 2 manettes et leurs valeurs sont différentes
    donc pour toi se sont des offset??

    data[3] <> 4
    c'est quoi ca ??

    bizarre garder 2 bits sur 10 ... avec une opération bidon.
    A mon avis ce code est faux.
    je ne pense pas car je l'utilise et les servos tournent bien en fonction de l'accé??


    data[5] c'est les boutons
    quelles boutons ??

    on a bien des histoires de masquage de bits


    QUELLES EST la différence entre 0x03 et 0x0FFF??


    merci pour ton effort de réflexion. Je suis entrains de faire des recherches pour pouvoir te poser des questions plus précises


    PS: le code que j'ai marche donc cette ligne est bonne

  8. #7
    pseudok

    Re : opération bits à bits

    https://code.google.com/p/flamingoar...5.zip&can=2&q=

    ça c'est la librairie Wiichuck et je l'ai déjà car elle me permet de coder sur arduino.
    moi ce que je t'ai montré c'est une ligne de mon code pour utiliser les données d'accé sur l'axe Y

  9. #8
    freepicbasic

    Re : opération bits à bits

    int value = constrain(accelY, -180, 180);
    D'ou ça sort encore ce truc
    Pas de prototype, pas de cast, ça sert à quoi ?
    Pas de code complet...
    A+, pat

  10. #9
    freepicbasic

    Re : opération bits à bits

    se sont des offset??
    un offset oui !
    A+, pat

  11. #10
    freepicbasic

    Re : opération bits à bits

    data[3] <> 4
    On décale de 4 à gauche et 4 à droite , le seul effet est d'effacer 4 bits.
    A+, pat

  12. #11
    freepicbasic

    Re : opération bits à bits

    je ne pense pas car je l'utilise et les servos tournent bien en fonction de l'accé??
    Avec des parenthèses manquantes je me demande comment ça peut compiler.
    il test 2 bits de poids faible, je ne sais ce que ça donne...
    A+, pat

  13. #12
    freepicbasic

    Re : opération bits à bits

    quelles boutons ??

    on a bien des histoires de masquage de bits
    C'est dans le lien que tu as envoyer, il test 2 boutons en faisant un mask & 0x03 c est 2 bits de poids faibles.
    Je ne sais s'ils existent vraiment...
    A+, pat

  14. #13
    freepicbasic

    Re : opération bits à bits

    QUELLES EST la différence entre 0x03 et 0x0FFF??
    Le nombre de bits
    0x03 2 bits , on garde que 2 bits de poids faible
    0x0FFF 12 bits , on mask les 4 bits de poids fort
    Déjà il doivent être à zéro donc l'opération est inutile et en plus il faut masquer 6 bits pas 4 bits.
    A+, pat

  15. #14
    pseudok

    Re : opération bits à bits

    voici un livre qui parle des données de la nunchuck
    mais il manque des pages

    https://books.google.fr/books?id=gbG...unchuk&f=false

    après l'exemple 8.7
    Dernière modification par pseudok ; 18/12/2014 à 23h03.

  16. #15
    extremgear

    Re : opération bits à bits

    Pourtant il me semble qu'il existe des exemples clairs sur le net .

    moi j'ai ce bout de code qui fonctionne :
    Code:
         xaxis= (data[2]<<2) +(( data[5]>>2) & 0x03);
            yaxis= (data[3]<<2) +(( data[5]>>4) & 0x03);
            zaxis= (data[4]<<2) +(( data[5]>>6) & 0x03);

  17. #16
    freepicbasic

    Re : opération bits à bits

    là, au moins, le code est cohérent pour lire 10 bits
    A+, pat

  18. #17
    Biname

    Re : opération bits à bits

    Hello,
    Citation Envoyé par extremgear Voir le message
    Pourtant il me semble qu'il existe des exemples clairs sur le net .
    moi j'ai ce bout de code qui fonctionne :
    Code:
         xaxis= (data[2]<<2) +(( data[5]>>2) & 0x03);
            yaxis= (data[3]<<2) +(( data[5]>>4) & 0x03);
            zaxis= (data[4]<<2) +(( data[5]>>6) & 0x03);
    Tab 8.5 de https://books.google.fr/books?id=gbG...unchuk&f=false donne l'explication

    xaxis est transmis via data[2] pour les bits b7 à b2 et via data[5].b3 et data[5].b2 pour b1 et b0

    !!!! data[5] est documenté b0 b1....b7

    Ces lignes de code recomposent les octets complets des composantes X,Y,Z de l'accélération.

    <<2 shift left deux fois
    >>2 shift right deux fois
    & 0x03 annuler b7 à b3
    data[0] à data[5] sont les 6 valeurs lues dans la wiichuck par le protocoie I2C, exposé en Tab 8.5

    Biname

  19. #18
    pseudok

    Re : opération bits à bits

    excusez moi mon ordi a planté !

    d’après ce tableau , pouvez vous reconstituer avec moi l'information contenue dans chaque octet.
    http://www.iut-troyes.univ-reims.fr/...eauNunData.png

    Pour commencer . 0b 0000 0001= 0b 1??

    et si j’ai 0b 0001 0001 pour l’octet X
    exemple ( si je me trompe corriger moi sil vs plaît )
    j’ai 1 bits ( il est à la 5 ème place en partant de la droite ) donc celui là aura un but particulier
    il représente les données d’accé sur un Axes préci ou ….
    et l’autre bits pourra correspondre à autre chose (joyst c’est un exemple )
    qt au 0 c’est rien du tout ( ils correspondent à aucune données )

    revenons au tableau
    pr l’octet 0 : est ce que j’ai ça comme donnés( c’est les données de joystick) 0b 1111 1111 ?? (car SX<7:0>) donc les bits sont entre 0 et 7
    puis je compile dans un entier (int 16 ) non signé de16 bits
    dc j’ai 0b 0000 0000 1111 1111 dans l’octet 1 ??

    pr l’octet 1: 0b 0000 0000 1111 1111 ?? (car SY<7:0>)

    pr l’octet 2: 0b 0000 0011 1111 1100?? (car AX<9:2>) (les 1 correspondants au 8 bits fort de accel X

    pr l’octet 3: 0b 0000 0011 1111 1100?? (car AY<9:2>)

    pr l’octet 4: 0b 0000 0011 1111 1100?? (car AZ<9:2>)

    pr l’octet 5: je ne vois CAR j’ai AX<1:0>=AY<1:0>=AZ<1:0>(2bits de poids faible de l’accé axe X)
    et de plus j’ai les boutons C et D !!

    mais je crois que j’ai en ce qui concerne les boutons C et Z 0b 0000 0000 0000 0011
    car j’aurais à réaliser pour le bouton C
    button c = (data[5] >> 1) & 0x01;
    et pour obtenir l’avant dernier bit correspondant au bouton C
    on déplace l’avant dernier bit à la dernière place (x>>1) et on utilise un
    masquage de bits & 0x01(hexadécimal) soit & 0b 0000 0000 0000 0001 (=0b 1)

    0b 0000 0000 0011 1111 (nombre)
    0b 0000 0000 0000 0001 (masque=0x01)
    -----------------------------
    0b 0000 0000 0000 0001 ( &(and au niveau des bits ))
    donc je n’obtient que le dernier bits correspondant au boutton C



    oui , j'ai un problème avec l'octet 5 . Est ce vous pourvez m'aider à placer chaque 2 bits faibles pour accelx accely et accelz et le bits du bouton C et du bouton Z

    un truc comme ca 0b 0000 0000 1111 1111
    ce bits correspond au bouton ....(ZouC)

    ce bits correspond au boutons ....(ZouC)

    ces 2 bits faibles correspondent à accel .....( x ou y ou z)
    ces 2 bits faibles à accel ....( x ou y ou z).
    ces 2 bits faibles à accel.......( x ou y ou z).

    merci pour votre aide
    Dernière modification par pseudok ; 23/12/2014 à 09h40.

  20. #19
    freepicbasic

    Re : opération bits à bits

    Le Monsieur post#17 t'as expliqué clairement comment reconstitue le mot de 10 bits.
    Mais apparemment c est pas suffisant.

    1) le convertisseur fait une conversion sur 10 bits
    2) le processeur est un 8 bits donc 2 bits en rab !
    c'est clair pour le moment ?

    A ce niveau on a le choix de virer soit 2 bit a gauche soit 2 bits à droite !

    On décide de virer ceux de droite !
    Pourquoi ?
    Parce qu’avec 8 bits de précision ça va suffir pour la plupart des applications ça fait 256 niveaux pour un jeux ça devrait suffir...

    Si on veut la précision max , il faudra rajouter les 2 bits manquants pour avoir une précision de 1024
    Dans ce cas on devra changer de type char (8bits) vers un type int (16bits)
    On décale vers la gauche de 2 bits pour faire la place pour les 2 bits qu'on va ajouter.

    Mais ou sont ces 2 bits ?
    Il sont dans le [5] et il 2 bits pour chaque axe et 2 bits pour les boutons soit 2 x 4 = 8 bits
    2 bits Z, 2 bits Y, 2bits X , 1 bit bouton,1 bit bouton
    (vérifiez l'ordre dans la doc...)

    oui mais il ne sont pas à la bonne place puisqu on veut les mettre en bit 0 et bit 1 !
    Il faut donc les décaler vers la droite .
    Dans mon exemple ;
    Z 6 fois (data[5]>>6)
    Y 4 fois
    X 2 fois
    bouton 0 fois

    ha oui ! mais il reste peut des chose dans les autre bits qu'on ne veut pas ?
    Eh bien on les effacent
    & 0X03 reste juste 2 bits utile

    Maintenant reste plus qu'a additionner ces 2 bits manquant
    (ou faire un OR logique ce revient au même)
    A+, pat

  21. #20
    pseudok

    Re : opération bits à bits

    merci pour ta réponse
    voila ce que j'ai (corrige moi si j'ai tord ).


    octet 0= data[0]=0b 0000 0000 1111 1111 (données complet de joy sur axe X sur 8 bits ) Je ne sais pas si ds ce cas là on peut parler de bits forts vu qu'il y en a pas d'autres?

    data[1]=0b 0000 0000 1111 1111 (données complet de joy sur axe Y sur 8 bits)

    data[2]=0b 0000 0000 1111 1111 (données pas complet de l'acce sur l'axe X sur 8 bits : ce sont les bits forts (les + représentatif de l'acce X)

    data[3]=0b 0000 0000 1111 1111 (données de l'accé sur l'axe Y sur 8 bits : ce sont les bits forts)

    data[4]=0b 0000 0000 1111 1111 (données de l'accé sur l'axe Z sur 8 bits forts)

    data[5]=0b 0000 0000 1111 1111
    1=bouton D

    bouton C
    2 bits faible de accé X
    2 bits faible de accé Y
    2 bits faible de accé Z


    mais quand je vais ce calcul buttonC=(data[5]>>1)& 0x01

    data[5]=0b 0000 0000 1111 1111
    data[5]>>1=0b 0000 0000 0111 1111 1 donc est ce que le 1 en foncé est parti et a laissé place au 0 en foncé??
    donc data[5]>>1= 0000 0000 0111 1111
    et (data[5]>>1)&0x01(=0b 0000 0000 0001) = 0b 0000 0000 0000 0001 (ac 1 = donnée du bouton C)

    pour être rigoureux faut dire (data[5]>>1)&0x01= 0b 0000 0000 0000 0001 ( type int )ou 0b 0000 0001 (type octet ou char)
    j'ai data[]




    [/COLOR]or on a pas data[0]=data[1]=data[2]=data[3]=data[4] car les 1 ne transporte pas la mémé info
    est ce que 0 cela correspond a rien du tout (pas d'info)

    corrigez moi si j'ai tord
    pour data[0]=octet pour le joystik sur X et data[1]=octet pour le joy sur Y car j'ai 8 bits soit un octet ou un char comme tu dis (c'est la meme chose??)

    en faite data[i]= 1 octet pour i allant de 0 à 5

    c'est après que je pourrais dire que double accelX= est de type int (16 bits dont 6 ne servent a rien car des 0) car
    double accelX = ((data[2] << 2) + ((data[5] >> 2) & 0x03)
    donc double accelX= 0b 0000 0011 1111 1111
    AX bits forts + AX bits faibles

  22. #21
    freepicbasic

    Re : opération bits à bits

    Je pense que ça commence à rentrer.

    un char fait un octet effectivement
    La différence est que le bit 7 donne le signe (-127 + 127)
    un "unsigned char" est un octet tout simple non signé (0 à 255)


    Lorsqu'on parle le bits sans spécifié leur valeur mais seulement leur emplacement on utilise une lettre;
    si l'on veut montrer le bits que vont prendre la valeur lu sur 10 bits dans un int on écrit
    000000XX XXXXXXXX
    Ce qui montre la place des bits utilisés Les 0 signifiant que l'on a effectivement toujours la valeur 0 le X signifie 1 ou 0.

    Dans le cas du data[5]
    On décrira chaque bits avec des lettre
    Par exemple;
    XX YY ZZ G D

    2 bits valeur de X
    2 bits valeur de Y
    2 bits valeur de Z
    1 bit bouton Gauche
    1 bit bouton Droit

    >> signifie décalage le décalage remplie le bit manquant avec un 0
    Si l'on décal 8 fois il ne reste plus que des 0

    Il existe aussi des rotations généralement en assembleur ,
    La rotation passe par le carry et renvoie l'ancienne valeur du carry à la place du bit manquant au lieu d'un zéro.
    A+, pat

  23. #22
    freepicbasic

    Re : opération bits à bits

    Au sujet des type
    Le type int a 16 bits et le char 8 bits

    Comme la valeur renvoyer sera sur 10 bits ça ne peut rentrer que sur un int.

    Mais les données arrive par paquet de 8 bits
    Uchar (unsigned char)
    ainsi la donnée reçu "xxxxxxxx" devra passer dans un int "00000000 xxxxxxxx"
    Maintenant le décalage sera possible
    "000000xx xxxxxx00"

    En C il y a 2 types de conversion implicite ou explicite
    implicite le C se débrouille pour la faire , généralement un Warning s'affiche pour dire "Attention je ne sais si c est ça que tu veux"

    Le mieux est de lui dire , pour ça on met ce qu'on appel des cast (int) (Uchar)
    int Myint ;
    Uchar Data[0];
    Myint = (int) Data[0]; Le compilateur fera la bonne conversion indiqué ci dessus

    Mais dans le cas inverse un int en char il y aura perte d'infos si la partie haute à une signification
    ex:
    int Myint ;
    Uchar Data[0];
    Data[0] = (Uchar) Myint ; Le compilateur fera la conversion comme ceci;

    HHHHHHHH LLLLLLLL
    deviennent =>
    LLLLLLLL
    Les H sont perdus
    A+, pat

  24. #23
    pseudok

    Re : opération bits à bits

    en ce qui concerne (pr i allant de 0 à 5) data[i]=1 Uchar ou 1 octet ?? vu que je n'ai pas de signes . Car dans mon tableau on parle d'octets

    ais-je fait une erreur en écrivant data[1]=0b 0000 0000 XXXX XXXX ??
    soit est-ce que 0b XXXX XXXX et 0b 0000 0000 XXXX XXXXX c'est la meme chose .
    Dc 0b 0000 0000 XXXX XXXX est un int ou un octet ?? (vu que les zéro contiennent rien) car certains livres disent
    0b 0000 0000 0000 0001 = 0b1

    si 0b 0000 0000 XXXX XXXX est un int alors dois-je plutôt écrire data[i]=0b XXXX XXXX ? car j'ai des Uchars pour data[i]


    ensuite seuls les accelX, accelY, accelY seront en int soit accelX=0b 0000 00XX XXXX XXXX .....
    alors faut-il mieux écrire joyX,joyY,buttonC,buttonZ en Uchar (=0b AAAA AAAA) ou en int (0b 0000 0000 AAAA AAAA) vu qu'ils condiendront 8 bits contrairement au accé.??

    En C il y a 2 types de conversion implicite ou explicite
    ça je pense que c'est fait directement par la librairie wiichuck

    le X signifie 1 ou 0
    en effet , pour data[5]=XX YY ZZ GD . G et D peuvent être =0 ou 1 suivant si on appuis sur le boutton ou non
    etat du bouton à down c'est quand on appuis pas sur le bouton et up qd on appuis??
    mais pour les accé X Y Z ais-je zéro quand je ne bouge pas la manette??


    Code PHP:
    le bus I2C oblige un Bus série et 8 bits 
    quand on parle de bus série . Le série implique quoi??
    quand on dis 8bits pour le I2C est ce due au faite que sont adresse est sous la forme de 8 bits
    http://www.iut-troyes.univ-reims.fr/...5e/Priseee.png


    et lorsque je rassemble les données d’accé sur les même axes j’aurais 10 bits et non 8 bits
    dc
    j’utiliserais un I²C étendu (I2C Fast Mode) (se fait automatiquement , j’ai rien à faire)
    qui a un Adressage sur 10 bits

    peux tu m'en dire plus sur ce i2c étendu ??
    Dernière modification par pseudok ; 23/12/2014 à 16h59.

  25. #24
    pseudok

    Re : opération bits à bits

    je suis entrains d'essayer d'utiliser les boutons C et D ne ma manette nunchuck

    je doute un peu
    d'abord je dis que

    int bouton C =13 // definition de la valeur 13 et du nom de la broche à utiliser
    est ce que cela signifie que le servo correspondant au bouton c est sur la broche 13 de la carte arduino??
    car pour moi int variable =4 cela veut dire que la valeur initiale de variable est 4

    et après je vais dire que boutonC ==1 implique que le bouton C est appuyé
    voit setup(){
    pinMode(boutonC,OUTPUT);//configure bouton C comme une sortie numérique

    }
    voila je ne comprends pas pourquoi on parle de sortie et
    je ne vois pas également pourquoi on dit qu'elle est numérique
    est ce du au faite que boutonC= 0b 0000 0000 0000 000X avec X=1 ou 0

    car j'ai pu voir qu'avec analogue.write on avait un can ( convertion analogiq numériq)



    void loop(){



    if( boutonC==1){
    digitalWrite(boutonC,HIGH);//met la sortie numérique à l'état haut (boutton pressé)
    }
    else{
    digitalWrite(boutonC,LOW);
    }
    quand je dis que boutonC==1 , je dis bien que boutonC=0b 0000 0000 0000 0001
    est ce que de mettre ce qui suit est interressant ou est ce que je peux m'en passer
    else{
    digitalWrite(boutonC,LOW);
    }
    Dernière modification par pseudok ; 24/12/2014 à 14h44.

  26. #25
    Biname

    Re : opération bits à bits

    Hello,

    Tu as beaucoup de choses à apprendre
    - tables de vérité des portes logiques
    - notion entrée/sortie des microprocesseurs et schéma des 'sorties'
    - les base du C
    ...

    Int boutonC = 13;
    Définit simplement un nom qui remplacera 13 pour des raisons de lisibilité.

    voit setup(){
    pinMode(boutonC,OUTPUT);//configure bouton C comme une sortie numérique
    }

    Indique à Arduino (au µP) que la pin 13 va être utilisée comme une sortie et nom comme une entrée.
    Numérique indique que cette sortie est tout ou rien.

    c==1, le double signe égale n'est utilisé que dans les conditions/comparaisons pas dans les affectations de valeurs

    ...

    Biname
    Dernière modification par Biname ; 24/12/2014 à 18h14.

  27. #26
    pseudok

    Re : opération bits à bits

    merci pour ton aide
    me voila toujours bloqué depuis que j'ai posté mon message car j'ai essayé ce que j'ai fais et cela ne marche pas et je ne voit pas ou sa cloche??
    pourtant j'ai modifié plein de chose

    c==1, le double signe égale n'est utilisé que dans les conditions/comparaisons pas dans les affectations de valeurs

    c'est bien une condition ce que je fais !
    if (boutonC==1)

    { digitalwrite(13,HIGHT)
    }
    en faite je ne vois pas ou je me trompe

    je suis encore là

  28. #27
    Biname

    Re : opération bits à bits

    Hello,

    Tu te moques de nous ? Dr Troll ?

    if (boutonC==1)

    { digitalwrite(13,HIGHT)
    }
    Là, c'est un dictionnaire français-anglais qu'il te faut

    Biname
    Dernière modification par Biname ; 24/12/2014 à 18h28.

  29. #28
    pseudok

    Re : opération bits à bits

    si j'appui sur le bouton C

    alors le tension alimente le servo qui est dans la broche 13
    et donc normalement il sevrait bouger.

  30. #29
    pseudok

    Re : opération bits à bits

    je me suis renseigné sur l'utilisation de bouton pour faire bouger un servo et il s'avère que mon montage n'est pas bon car
    si je dis que int boutonC =13 , je dois liée se bouton à la pin 13 de la carte et à une autre broche

    or moi j'ai un télécommande qui est connécté sur les broches A4 A5 et 5V et gnd de la carte arduino
    DONC c'est différent d'un bouton poussoir
    et dans ce cas je ne voit pas comment faire??

    merci de votre aide

  31. #30
    pseudok

    Re : opération bits à bits

    Bonjours,

    J'ai encore des souci et je n'obtiens pas la rotation d'un servo avec mes boutons de ma manette
    et je ne comprends pas pourquoi

    int bouton C =13
    j'ai connecté mon servo sur la pin 13 de ma carte arduino
    Prévenez moi si cela est une erreurs .

    voit setup(){
    pinMode(boutonC,OUTPUT);//configure bouton C comme une sortie numérique

    }


    void loop(){



    if( boutonC==1){
    digitalWrite(boutonC,HIGH);//met la sortie numérique à l'état haut (boutton pressé)
    }
    else{
    digitalWrite(boutonC,LOW);
    }

    ici boutonC= 0b 0000 0000 0000 000X avec X=1 ou 0
    si j'appui sur le bouton, X=1 et si je n'appui pas X=0 ??

    voila je n'obtiens pas la rotation des servos , voyez vous pourquoi??

Discussions similaires

  1. Programme 32 bits sur Windows 7 Home premium edition 64 bits
    Par invite7b1dcabe dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 10/02/2012, 18h08
  2. Réponses: 0
    Dernier message: 08/02/2012, 16h03
  3. soustraction 16 bits,deux registres 8 bits, assembleur
    Par invite480f4512 dans le forum Électronique
    Réponses: 5
    Dernier message: 29/03/2011, 19h59
  4. [C] - Passage de mots de n bits en mode de 8 bits
    Par jorg1n dans le forum Électronique
    Réponses: 17
    Dernier message: 30/07/2009, 10h02
  5. Convertir 12 bits série en 7 bits paralléle avec un HC11 ?
    Par invite0ee134f7 dans le forum Électronique
    Réponses: 2
    Dernier message: 03/03/2005, 08h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.