Problême de Programmation de Masque - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 38 sur 38

Problême de Programmation de Masque



  1. #31
    invite55fe29e6

    Re : Problême de Programmation de Masque


    ------

    Bonsoir à tous,

    Je viens de parcourirs la toile et je n'est pas encore très bien compris la notion des interruption, cela ne me parrait pas impossible mais c'est que je sa m'inpressionne un peu, Si quelqu'un avait un site à me communiqué ou voudrai bien prendre le temps de m'expliqué cette notion je lui en serai reconnaisant.
    Merci d'avance pour votre aide,
    Codialement Paulochon

    -----

  2. #32
    invite55fe29e6

    Re : Problême de Programmation de Masque

    Bonjour a tous,

    Je relance un peu la discution,
    je suis entrain de faire une routine pour mon scrutage mais en // j'essai de me documenté sur les Interruptions mais j'avoue que j'aimerai bien comprendre cette fonction et que sans explication sa n'est pas évident
    En vous remerciant d'avance de votre
    Cordialement Paulochon

  3. #33
    invite55fe29e6

    Re : Problême de Programmation de Masque

    Voila comme je lavai dit,
    Je vais essaié de faire ma routine avec des masque tout dabord ( même si je suis toujours à la recherche d'aide pour utiliser des interrruption)
    Par contre il y a des erreurs dans le code et je viens de le faire et je dois avoir trop le nez dessus et pas assez de recul
    Je vous donne mon petit bout de programme
    qu'est ce que vous en pensez???

    void defaut_portes (unsigned char Portes)
    {

    Portes = ( PINB & 0x1E );
    Portes >>1;

    switch case (Portes)
    if ( Portes==1) : do
    {
    aff_ligne0 (" Porte Avant ");
    aff_ligne1 (" Gauche OUVERTE ");
    }
    else if ( Portes==2) : do
    {
    aff_ligne0 (" Porte Avant ");
    aff_ligne1 (" Droite OUVERTE ");
    }
    else if ( Portes==4) : do
    {
    aff_ligne0 (" Porte Arrière ");
    aff_ligne1 (" Gauche OUVERTE ");
    }
    else if ( Portes==8) : do
    {
    aff_ligne0 (" Porte Arrière ");
    aff_ligne1 (" Droite OUVERTE ");
    }
    else if ( Portes==16) : do
    {
    aff_ligne0 (" Coffre ");
    aff_ligne1 (" OUVERT ");
    }
    Merci d'avance pour votre aide
    Paulochon

  4. #34
    invite55fe29e6

    Re : Problême de Programmation de Masque

    Sinon voila une autre version de se scrutage

    void defaut_portes (unsigned char Portes)
    {

    Portes = ( PINB & 0x1E );
    Portes >>1;

    switch case (Portes)
    case ( Portes==1):
    {
    aff_ligne0 (" Porte Avant ");
    aff_ligne1 (" Gauche OUVERTE ");
    }
    break;

    case ( Portes==2):
    {
    aff_ligne0 (" Porte Avant ");
    aff_ligne1 (" Droite OUVERTE ");
    }
    break;

    case ( Portes==4):
    {
    aff_ligne0 (" Porte Arrière ");
    aff_ligne1 (" Gauche OUVERTE ");
    }
    break;

    case ( Portes==8):
    {
    aff_ligne0 (" Porte Arrière ");
    aff_ligne1 (" Droite OUVERTE ");
    }
    break;

    case ( Portes==16):
    {
    aff_ligne0 (" Coffre ");
    aff_ligne1 (" OUVERT ");
    }
    break;
    }
    Mais une longue étude papier se matin je me suis rendu compte que la gestion par interruption serai laplus adapter cependant il me faudrai quelque explication
    Merci d'avance pour votre aide

  5. #35
    invite55fe29e6

    Re : Problême de Programmation de Masque

    Je viens de corriger toute les erreurs de mon Programme que j'avai posté,
    C'est que j'avai tapé trop vite sans faire attention,

    Enfin il ne veut toujours pas affiché ce que je veux, Hors cet solution de masque n'est plus valide, il faut absolument que j'utilise des interruptions car je veux strcuté le port mais pouvoir faire autre choses à coté

    Dans l'attente de votre aide
    Merci pour l'aide qui ma déjà été donné et Merci de votre aide future

    Codialement Paulochon

  6. #36
    Jack
    Modérateur

    Re : Problême de Programmation de Masque

    En programmant en C, l'utilisation des interruption est relativement transparent.

    Une fonction d'interruption nécessite en principe le mot réservé interrupt avant le nom de la fonction. Il doit y avoir moyen avec le #pragma aussi. Il faut que tu vois sa syntaxe. Ca change un peu d'un compilateur à un autre.

    Ensuite, comme je te l'ai déjà dit, il faut te taper la doc de l'ATMEL. Regarde le chapitre sur les ports pour voir s'il ne peuvent générer des interruptions. Sinon, il reste la solution de l'entrée IRQ.

    Pour chaque source d'interruption il existe un bit qui va autoriser ou non l'envoi d'une interruption à l'unité centrale. A l'autre bout, l'unité centrale dispose en principe d'un bit qui autorise ou non le traitement des interruptions. ce bit doit se trouver dans le registre d'état (je ne connais pas les ATMEL).

    A+

  7. #37
    freepicbasic

    Re : Problême de Programmation de Masque

    comme l'as dit Jack le bit 2 correspond au mask 04 !

    bit 0 1
    bit 1 2
    bit 2 4
    bit 3 8
    bit 4 16
    bit 5 32
    bit 6 64
    bit 7 128

    On peut masquer directement ou avec l'inverse comme déjà proposé en faisant;
    (255 - mask) (décrit ci dessus)

    Dans le 1er cas , le masquage direct on test la présence du 1 !
    Le test se fera donc avec le mask ou simplement (>0)
    if ( (Val & mask) == mask) alors vrai;// (on a un 1)
    if ( (Val & mask) > 0) alors vrai; // (on a un 1)
    if ( (Val & mask) != 0) alors vrai ; // (on a un 1)
    if ( (Val & mask) == 0) alors faux ; // (on a un 0)

    Dans le 2em cas masquage inverse on test la présence du 0 !
    Le test se fera donc avec le mask ou simplement (== 255)
    if ( (Val & (255-mask)) == (255-mask)) alors vrai ;// (on a un 0)
    if ( (Val & (255-mask)) == 255) alors faux ; // (on a un 1)

    Nb;
    En assembleur pic les instructions BTFSS ou BTFSC ,
    le font en 1 seule ligne
    Code:
    btfss Portb,2
    goto condition_fausse ; pb2 = 0
    goto condition_vrai;    pb2 = 1
    ou

    Code:
    btfsc Portb,2
    goto condition_vrai;    pb2 = 1
    goto condition_fausse ; pb2 = 0
    A+, pat

  8. #38
    invite55fe29e6

    Re : Problême de Programmation de Masque

    Merci pour ton aide,

    La je fais essaié de faire comme sa mais je pense que je vais le faire avec des interruptions

    Merci pour votre aide à tous
    Cordialement Paulochon

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Comment faire un masque en C++
    Par invite55fe29e6 dans le forum Électronique
    Réponses: 11
    Dernier message: 09/06/2007, 20h47
  2. emule et son masque
    Par inviteb6449e6d dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 28/10/2006, 20h47
  3. Ip et masque réseau en direct
    Par invite57e4f988 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 6
    Dernier message: 24/07/2006, 22h29
Découvrez nos comparatifs produits sur l'informatique et les technologies.