Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Langage C: condition de switch



  1. #1
    Monpseudo

    Langage C: condition de switch


    ------

    Bonjour,

    Je m'initie à la programmation de µC, et je rencontre quelques difficultés avec le langage C.
    Les cours que j'ai lu sur internet ne m'ont pas vraiment aidé pour cette fois.

    L'exemple est le suivant:

    switch (MSC->READCTRL & _MSC_READCTRL_MODE_MASK)

    Je ne comprend pas la condition du switch.
    J'ai l'impression qu'il y a 2 conditions:une comparaison entre la valiable MSC et readCTRL et une fonction "ET" entre ReadCTRL et MSC_READCTRL_MODE_MAsk

    Merci d'avance pour vos réponses

    -----

  2. Publicité
  3. #2
    jiherve

    Re : Langage C: condition de switch

    Bonsoir,
    amha:
    MSC->READCTRL c'est la valeur d'un terme défini par un pointeur sur une structure déclarée ailleurs.
    _MSC_READCTRL_MODE_MASK un masque permettant d'isoler un ou des bits dans le mot précédent.
    le switch fait en suite le boulot.
    JR
    Dernière modification par jiherve ; 25/07/2013 à 20h45.
    l'électronique c'est pas du vaudou!

  4. #3
    sly37

    Re : Langage C: condition de switch

    Citation Envoyé par Monpseudo Voir le message
    Bonjour,

    Je m'initie à la programmation de µC, et je rencontre quelques difficultés avec le langage C.
    Les cours que j'ai lu sur internet ne m'ont pas vraiment aidé pour cette fois.

    L'exemple est le suivant:

    switch (MSC->READCTRL & _MSC_READCTRL_MODE_MASK)

    Je ne comprend pas la condition du switch.
    J'ai l'impression qu'il y a 2 conditions:une comparaison entre la valiable MSC et readCTRL et une fonction "ET" entre ReadCTRL et MSC_READCTRL_MODE_MAsk

    Merci d'avance pour vos réponses
    Bonsoir,

    l'exemple est très mal choisi !
    Il s'agit simplement d'un masque sur un registre ou variable quelconque.

    Switch(Variable)
    {
    Case 1:
    (traitement ici)
    break;
    case 4:
    (traitement ici)
    break;
    default:
    (traitement ici)
    break;
    }

    Selon le contenu de la "Variable" (1, 4 ou autre), tu peux générer un traitement bien spécifique.

  5. #4
    Tonave72

    Re : Langage C: condition de switch

    Salut,

    En effet, comme il te l'a déjà été dit précédemment et juste pour en rajouter una couche, il s'agit ici d'un masquage.

    Tu viens lire une info dans un registre ou structure ou autre (pas facile sans le reste du code) MSC->READCTRL.
    Ensuite tu vas regarder si certain bit sont à 1. Admettons si _MSC_READCTRL_MODE_MASK vaut 0x0F, tu vas ragardé la valeur du quartet de poids faible.
    donc le résultat de ton (MSC->READCTRL & _MSC_READCTRL_MODE_MASK) ne pourra alors seulement varier de 0 à 15 soit de 0x00 à 0x0F.

    J'espère avoir été clair... A+
    Rien ne se perd, rien ne se crée, tout se transforme. Lavoisier

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

    Re : Langage C: condition de switch

    ce que je te conseil:

    int resultat = MSC->READCTRL & _MSC_READCTRL_MODE_MASK;
    switch (resultat)
    {
    case 0: /* ton code */; break;
    case X: /* ton code */; break;
    default:/* ton code */; break;
    }

    avec default qui sera executé si aucun case X ne convient.

  8. #6
    Monpseudo

    Re : Langage C: condition de switch

    Merci à tous pour les infos.
    Je vais pouvoir me concentrer sur l'utilisation des masques et pointeur.

  9. Publicité

Discussions similaires

  1. le langage C est t il un langage qui a de l'avenir ?
    Par vince6629 dans le forum Programmation et langages, Algorithmique
    Réponses: 13
    Dernier message: 12/11/2014, 13h01
  2. langage C incrementation dans switch case....
    Par kixxxx dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 06/04/2010, 10h50
  3. Switch ou mini switch?
    Par guiguidu59 dans le forum Électronique
    Réponses: 2
    Dernier message: 28/12/2009, 12h58
  4. Utilisation de switch avec un autre switch
    Par sasosaso dans le forum Électronique
    Réponses: 0
    Dernier message: 02/10/2009, 19h10
Découvrez nos comparatifs produits sur l'informatique et les technologies.