Microcontrolleur

Signaler
Messages postés
7
Date d'inscription
vendredi 20 mars 2009
Statut
Membre
Dernière intervention
8 mai 2009
-
Messages postés
7
Date d'inscription
vendredi 20 mars 2009
Statut
Membre
Dernière intervention
8 mai 2009
-
salut à tous, je voulais relier deux pic 16F877A. mon but est de emettre un octet par une transmission serie asynchrone. voici la fonction de l' emission et de reception que j' ai eccrit et malheuresement ca marche pas. j' ai pas pu trouvé le probléme.

void emission_octet(unsigned short octet)
{
  int i;
  unsigned short temp=octet;
  for(i=0;i<8;i++)
   {
    PortA.F0 = temp & 0b00000001;
    PortA.F1=1;
    Delay_ms(1);
    PortA.F1=0;
    Delay_ms(1);
    temp>>1;
   }
 }

void reception()
{
  while(Fin_reception==0)
  {
    unsigned short temp=0;
    while(nb_bits<8)
    {
       if((PortA.F3==1)&&(Acquisition_permise==1))
        {
           Acquisition_permise=0;
           if(PortA.F2==1)
            temp+=valeur[nb_bits];
           
           nb_bits++;
           if(nb_bits==8)
            {
              data[nb_octets]=temp;
              temp=0;
              nb_octets++;
            }
         }
        else if (PortA.F3==0)
            Acquisition_permise=1;
      }
         nb_bits=0;

       if(nb_octets==4)
        Fin_reception=1;

  }

2 réponses

Messages postés
7
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
8 mai 2009

merci j'ai compris le paragraphe premier jusque "probléme." mais pas la suite. est-ce que c'est une sorte de code ? excuse moi.
Messages postés
7
Date d'inscription
vendredi 20 mars 2009
Statut
Membre
Dernière intervention
8 mai 2009

ce sont les deux fonctions (emission et réception) écrites en microc. il y a une faute quelques part  dans le programme et je c pa comment faire. merci