affecter les ports d'un pic à un unsigned int ou autre???
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

affecter les ports d'un pic à un unsigned int ou autre???



  1. #1
    invite0b3246fe

    Question affecter les ports d'un pic à un unsigned int ou autre???


    ------

    Bonjour tout le monde,

    J'utilise les ports A, B et D d'un pic 18F452 que je programme en C.

    Je voudrais savoir s'il est possible de definir par exemple un unsigned int et lui affecter les valeurs des ports utilisés?
    les ports sont pour le portA: 0,1,2,3 ; pour le portB: 0,1,2,3 ; pour le D:0,1,2,3,4,5,6
    je voudrais que cela donne un truc du genre ca:
    unsigned int=D.6 D.5 D.4 D.3 D.2 D.1 D.0 B.3 B.2 B.1 B.0 A.3 A.2 A.1 A.0;
    Cela me serrais utile pour faire une comparaison plus rapide à mon sens. Je programme sous C18.

    Merci d'avance

    -----

  2. #2
    invite1001d59c

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Tu declare une variable et ensuite tu affecte la pin que tu desire

    unisgned int iVariable
    iVariable=PORTA.1

    J'espere que j'ai pas dit dela m***

  3. #3
    monnoliv

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Un unsigned int en c pour de l'embarqué est en général codé sur 16bits.
    Pour assigner un port complet (8bits) à une variable, il faut la déclarer en unsigned char
    A+
    Ne soldez pas grand mère, elle brosse encore.

  4. #4
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    merci pour ces reponses
    Monnoliv, j'utilise 15 sorties de mon µc, c'est pour cela que j'ai pensé faire l'assignation des 15 ports sur un unsigned int, cela m'évite d'avoir plusieurs variables.

    Comment je dois-je faire pour assigner le bit de poids faible de mon int = le port A.0, etc jusqu'a D.6?

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

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Tu utilises un masque binaire pour cacher les bits que tu veux pas utiliser...

    Petite explication du fonctionnement des masque binaire dans une application reseau, mais ça revient au même utilisation des opération logique "ou" ou "et"

    http://www.inetdaemon.com/tutorials/...ry/masks.shtml

  7. #6
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    j'avais deja pensez à cette solution Grulou, merci quand meme, mais ca ne peut pas me mettre les ports dont j'ai besoin sur une seule variable type int. Il faut que je puisse avoir tous mes ports sur un seul mot afin de pouvoir utiliser le masque que tu me preconises pour tester le bon fonctionnement.
    Voila ce que je veux avoir:
    D.6 D.5 D.4 D.3 D.2 D.1 D.0 B.3 B.2 B.1 B.0 A.3 A.2 A.1 A.0 =
    B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 (Bx = le unsigned int)

  8. #7
    monnoliv

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Je ne sais pas si le compilateur du PIC permet ce genre de notation mais essaie ceci:
    Code:
    unsigned int a;
    
    //Affectation de la variable
    a = A + 16*B + 256*D; // A, B, D sont tes ports
    
    //Affectation des ports
    A = a;
    B = a >> 4;
    D = a >> 8;
    Ne soldez pas grand mère, elle brosse encore.

  9. #8
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Merci Monnoliv je vais essayer ca et je te tiens au courant

  10. #9
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Monnoliv, l'exemple que tu m'as donné ne fonctionne pas.
    Cependant j'ai essayé autre chose dans le même esprit c'est cela, mais ca ne fonctionne pas je ne sais pas pourquoi :

    #include <p18f452.h>
    #include <delays.h>
    #include <stdlib.h>
    #include <timers.h>

    #pragma config WDT=OFF /***WATCH DOG******/

    unsigned int my_rand (void);
    unsigned int ts_les_port (void);

    void main (void)
    {
    programme
    }

    unsigned int ts_les_port (void)
    {
    unsigned int port;
    port=1111111111111111;
    port &= PORTA;
    port <<=4;
    port &= PORTB;
    port <<=8 ;
    port &= PORTD;
    return (port);
    }

    quels sont les prblémes?

  11. #10
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    j'ai reussi à le faire marcher ca fait plaisir oufff!!!

    Je voudrais juste savoir, si quelqu'un peut m'aider pour réaliser une fonction aléatoire allant de 1 à 12 svp, pour pic18f452?

    Merci d'avance

  12. #11
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    svp je n'arrive pas à comprendre comment utiliser la fonction avec ce µC en C

  13. #12
    monnoliv

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    C'est assez difficile de réaliser une fonction vraiment aléatoire mathématiquement.
    Ce que j'ai déjà fait c'est incrémenter un compteur (modulo 256 par exemple) qui s'arrête quand un événement extérieur arrive (appui sur un bouton de clavier, ...).
    A+
    Ne soldez pas grand mère, elle brosse encore.

  14. #13
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Tu pourrais me donner le prototype de la fonction pour que je puisse la reconstituer? je n'arrive pas à maitriser cette fonction, j'ai cherché des exemples sur le net , spécifique au 18f452 mais il n'y a pas grand chose.

  15. #14
    invite0b3246fe

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    personne pour moi?

  16. #15
    Jack
    Modérateur

    Re : affecter les ports d'un pic à un unsigned int ou autre???

    Monnoliv t'a donné la réponse:

    tu incrémentes un des compteurs du pic à l'aide de son horloge.

    Lorsque tu appuies sur un bouton poussoir par exemple, tu lis la valeur de ce compteur. Si tu veux un nombre entre 0 et 12, il suffit de prendre le reste de la division entière par 12 (opérateur % en C).

    Dans tous les cas, il te faudra donc un évènement extérieur (bouton poussoir par exemple) pour que ce reste soit aléatoire.

    A+

Discussions similaires

  1. Trouver les coordonnées d'un repère en fonction d'un autre repère
    Par invitea2430066 dans le forum Mathématiques du supérieur
    Réponses: 17
    Dernier message: 19/11/2008, 09h57
  2. PIC: Adresse des Ports .... pour un débutant
    Par jt06 dans le forum Électronique
    Réponses: 2
    Dernier message: 18/10/2007, 18h18
  3. Aide sur les variables d'un PIC
    Par invite83652f77 dans le forum Électronique
    Réponses: 4
    Dernier message: 12/06/2006, 18h17
  4. Question Puissances ports de Sortie PIC
    Par invitecb425c94 dans le forum Électronique
    Réponses: 3
    Dernier message: 09/12/2005, 22h24
  5. INT management / Telecom INT
    Par invitefaf40fa4 dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 02/02/2005, 17h44
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...