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

pic16F877A lecture bit



  1. #1
    hakim34

    pic16F877A lecture bit


    ------

    Bonjour,

    Je programme le 16F877A en C avec le compilateur microC. Mon uC va recevoir des données sous forme de mot binaire d'1 octet sur le port B. J'aimerai savoir comment lire sur le port B l'octet reçu et stocker cette octet dans un tableau à la premiere ligne pour le premier octet , la deuxieme pour le deuxieme octets...

    Merci d'avance

    -----

  2. Publicité
  3. #2
    spoutnix

    Re : pic16F877A lecture bit

    Je suppose que tu fais de la transmission de données en parallele (c'est a dire que ton octet va arriver sur les huits bits du Port B). Une solution pourrait etre la suivante :

    definir un tableau de 8 cases.

    Envoyer un créneau sur un autre port pour indiquer que les données sur le port B peuvent etre lues.

    Puis assigner à chaque case de ton tableau la valeur du bit correspondant !

    tab[0]=PortBbits.rb0
    tab[1]=PortBbits.rb1.... (aux erreurs de syntaxe pres)

  4. #3
    Seb.26

    Re : pic16F877A lecture bit

    Code:
    // unsigned char ReadByte_PortB( )
    // in :
    // out : unsigned char ( 0x00 - 0xFF : data read on port B )
    unsigned char ReadByte_PortB(void);
    
    void RecordData( unsigned char n, unsigned char *array )
    {
      unsigned char i;
    
      for( i=0 ; i<n ; i++ )
        array[i] = ReadByte_PortB();
    }
    Par exemple, par contre dans mon exemple, ReadByte_PortB() est bloquant : il attend un octet sur le portB ... il est en general mieux de faire du non bloquant ... ça peut se faire en appellant regulièrement un fonction qui va voir si des datas sont dispo sur le portB, et les enregistre dans ce cas ... et qui rend la main sinon ...

  5. #4
    Seb.26

    Re : pic16F877A lecture bit

    Citation Envoyé par hakim34 Voir le message
    Mon uC va recevoir des données sous forme de mot binaire d'1 octet sur le port B.
    Comment le saura t'il ?

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

    Re : pic16F877A lecture bit

    En fait les bits reçus proviennent d'un convertisseur USB / parallèle nomé USBMO4 , les données sotn donc envoyées via uen interface utilisateur au niveau du PC communiquant via l'usb. Donc j'envoi un octet de mon opc vers le convertisseur USB / Parallèle, et reçois ces données sur mon port usb. Il saura que les données sont reçut en intérogeant le convertisseur. Il suffit de tester un bit du convertisseur pour savoir ou non s'il y a un octer de disponible voila. Merci pour les exemples mais ca reste tout de même un peu flou.

  8. #6
    Seb.26

    Re : pic16F877A lecture bit

    Citation Envoyé par hakim34 Voir le message
    En fait les bits reçus proviennent d'un convertisseur USB / parallèle nomé USBMO4 , les données sotn donc envoyées via uen interface utilisateur au niveau du PC communiquant via l'usb. Donc j'envoi un octet de mon opc vers le convertisseur USB / Parallèle, et reçois ces données sur mon port usb. Il saura que les données sont reçut en intérogeant le convertisseur. Il suffit de tester un bit du convertisseur pour savoir ou non s'il y a un octer de disponible voila. Merci pour les exemples mais ca reste tout de même un peu flou.
    Ok, alors dans ce cas, il te faut tester ce bit en question afin de valider les données sur ton bus // ( le portB )

    Si tu veux moins de flous, il nous faut un peu plus de données !!!
    ( quel bit indique qu'il y a une donnée, comment aquite on cette donnée, ect... )

  9. Publicité

Discussions similaires

  1. Pic16F877A horloge interne ??
    Par hakim34 dans le forum Électronique
    Réponses: 18
    Dernier message: 05/11/2008, 15h56
  2. Compilateur CCS C - initialiser struct bit à bit ?
    Par branqueira dans le forum Électronique
    Réponses: 4
    Dernier message: 26/11/2007, 15h37
  3. pic16f877A ROM
    Par hakim34 dans le forum Électronique
    Réponses: 5
    Dernier message: 07/08/2007, 14h51
  4. pic16F877A // USBMOD4
    Par hakim34 dans le forum Électronique
    Réponses: 0
    Dernier message: 09/07/2007, 15h54
  5. adc + pic16F877A+LCD
    Par mejdi_electronique dans le forum Électronique
    Réponses: 0
    Dernier message: 29/05/2007, 23h59
Découvrez nos comparatifs produits sur l'informatique et les technologies.