Précision ligne de commande programme
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Précision ligne de commande programme



  1. #1
    michel5002

    Précision ligne de commande programme


    ------

    Bonjour à tous,

    j'aimerai avoir, si c'est possible, des précisions sur une ligne de commande que je ne comprends pas:

    r =( ret[digit] & 0x1f ) | \ ( (ret[digit] & 0x60)<< 1);

    inclue dans cette partie de programme de télémètre US:

    int2seg(unsigned short digit)
    {
    unsigned short r;
    unsigned short ret[10] = { 0x9F, 0x06, 0x5B, 0x4F, 0xC6,
    0xDD, 0x7D, 0x07, 0xDF, 0xCF };

    if (digit<0 || digit>9)
    {
    r = 0xDF;
    } else
    {
    r =( ret[digit] & 0x1f ) | \ ( (ret[digit] & 0x60)<< 1);
    }
    return r;
    }

    Merci d'avance pour une réponse.
    michel5002

    -----

  2. #2
    michel5002

    Re : Précision ligne de commande programme

    help!!

    j'ai fais une erreur, lire:

    r =( ret[digit] & 0x1f ) | \
    ( (ret[digit] & 0x60)<< 1);


    sur 2 lignes au lieu d'une.
    "j'ai eu une erreur signalée en compilant".
    1000 excuses.
    michel5002

  3. #3
    LPFR

    Re : Précision ligne de commande programme

    Bonjour.
    Alors vous avec compris ou non?
    Le \ avant le passage à la ligne annule le passage à la ligne.
    Mais ici il est inutile.
    C ignore les passages à la ligne en dehors de chaînes de caractères. Vous pouvez le supprimer.
    Au revoir.

  4. #4
    michel5002

    Re : Précision ligne de commande programme

    Bonjour,
    celà veut dire que maintenant je peux écrire sur une seule ligne comme celà:
    r =( ret[digit] & 0x1f ) | ( (ret[digit] & 0x60)<< 1);

    Si c'est bon, SVP dites-le moi!
    Par contre, ce que je voulais savoir, qu'est-ce que cette ligne exécute:
    un calcul,
    réaffecte une autre valeur à "ret[digit],
    ou autre chose???

    merci de m'expliquer SVP.
    michel5002

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

    Re : Précision ligne de commande programme

    Code:
    r =( ret[digit] & 0x1f ) | ( (ret[digit] & 0x60)<< 1);
    Expliquer quoi ??? ... y'a une affectation, deux ET, un OU et un décallage à gauche ... ?!

    On prend la valeur du tableau ret[] à l'index 'digit', d'abord, on fait un ET avec 0x1F.
    Ensuite, on prend la valeur d'index digit', on fait un ET avec 0x60 puis on la décale à gauche d'un bit.
    Pour finir, on place dans r le résultat d'un OU entre les 2 valeurs ci-dessus ...

    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  7. #6
    LPFR

    Re : Précision ligne de commande programme

    Re.
    Non, elle ne modifie pas ret[digit].
    Oui, c'est bon.
    La partie gauche prend le nombre ret[digit] et fait un 'and' bit à bit avec 0001 1111, C'est à dire el force à zéro les bits de gauche au delà du 5ème et ne touche pas les 5 de droite.
    La partie de droite fait un 'AND' bit à bit de ret[digit] avec 0110 0000 puis fait un décalage à gauche d'un cran du résultat (<<1).
    Finalement ou fait un 'OR' bit à bit entre les deux résultats.
    C'est à dire les 5 bits de droite restent inchangés et les bits 5 et 6 se retrouvent en position 6 et 7 et un zéro a été inséré en position 5 (je compte de droite à gauche en commençant à 0).

    Ce résultat est mis en 'r'.

    P.S. Ce n'est pas une "ligne de commande" c'est une "instruction".
    A+

  8. #7
    michel5002

    Re : Précision ligne de commande programme

    Bonsoir,
    merci pour vos réponses et principalement à LPFR pour son explication qui m'a permis de modifier mon circuit en conséquense du changement de bits.
    Maintenant mon circuit pour télémètre US fonctionne comme il faut.
    Résolu.
    A+
    michel5002

Discussions similaires

  1. programme commande ...
    Par invitecad1e610 dans le forum Électronique
    Réponses: 0
    Dernier message: 11/05/2008, 23h14
  2. programme en c pour une commande
    Par invite43ebc126 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 21/02/2008, 08h52
  3. commande d'un robot suiveur de ligne
    Par invite29d9c8de dans le forum Électronique
    Réponses: 7
    Dernier message: 21/01/2008, 21h11
  4. chargement ftp par ligne de commande
    Par alainav1 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 12
    Dernier message: 23/11/2006, 18h22
  5. ligne de commande au boot sous XP
    Par keul dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 17/04/2003, 18h11
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...