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

USART pic



  1. #1
    laurentdu38

    USART pic


    ------

    Bonjour à tous,

    Je programme en language C, j'utilise un PIC 16F877.

    Je suis en train de réaliser un programme mettant en oeuvre la liaison USART.
    Cependant j'ai quelques dificultées ou doutes sur mon programme.

    Je souhaite donc réaliser une réception d'un octect par mon PIC, en mode Asynchrone.


    Je l'ai testé mais il ne marche pas. Ma liaison RS232 fonctionne avec un autre programme.

    J'ai des LEDS placées en sortie de mon PORTB. Le but de mon programme étant d'envoyer une valeur via le terminal, et au final voir allumées les LEDS correspondantent sur mon PORTB.

    Exemple: j'envois la valeur 4, j'aurais donc la LED du PORTB.2 allumée...

    Apparement dans mon programme RCIF ne passe jamais à 1, et je ne sais pas pourquoi.

    Voici mon programme avec les commentaires:

    Code:
    void main (void)
    {
        ADCON1=0x06;
        PORTA=0;
        TRISA=0x00;
        PORTB=0;
        TRISB=0b00000000;
        PORTC=0;
        TRISC=0b11000000; //RC7 en entré et RC6 en entré.
    
        SPBRG=0x33; //  Quartz 8Mhz , BRGH=1 donc   SPBRG = 51;
        TXSTA=0xb0000100; // Pas de 9ème bit. Emission désactivée. Mode Asynchrone. BRGH=1. TRMT=0. TX9D=0.
        RCSTA=0x10010000; // Reception continue activée. ADDEN=0. FERR=0. OERR=0. RX9D=0. SPEN=1.
    
        for(;;)
        {
        
        if(RCIF==1) // Quand l'octect est reçu RCIF passe à 1. Donc à ce mmt là je lit RCREG. Mon PORTA prend la valeur de RCREG.
        {
        PORTB=RCREG;
        }
        
        }  // Je fais cela en boucle.
    }

    Merci d'avance.

    Laurent

    -----

  2. Publicité
  3. #2
    RicounetZap

    Re : USART pic

    Bonjour,

    Juste pour confirmation, quand tu envoies '4', c'est le chiffre 4 ou le caractère 4 ?
    Comment envoies tu les informations ?
    Tes leds s'allument elles quand tu envoies quelque chose ?

  4. #3
    laurentdu38

    Re : USART pic

    Salut, merci de ta réponse.

    J'envois le chiffre 4. J'ai rien qui ne s'allume. Je travaille avec la EasyPic5. J'utilise le terminal de mikroC. Mais j'ai aussi essayé avec le terminal de Windows.


    Merci.

    Laurent

  5. #4
    Xtr£M

    Re : USART pic

    Salut,

    Alors tu utilise quoi comme compilateur?? Il n'y a pas des bibliothèques intégrées??
    Sinon tu as essayé d'envoyer des infos dans l'autre sens?? vers ton pc?

    Autre chose! Ou est déclarer RCIF?? Car c'est PIR1bits.RCIF qu'il faut utiliser! De plus ce bit est éffacé par l'hardware! Il ne faudrait pas activer l'interruption?

    @+
    Rien ne sert de courir ......

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

    Re : USART pic

    Vérifie tes timings en envoyant un octet, regarde la tronche qu'il a à l'oscillo ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  8. #6
    laurentdu38

    Re : USART pic

    Merci pour vos réponses, mon érreur était RCIF... il fallais que je mette PIR1.RCIF==1;

    Voilavoilouu!!

    Merci
    A+

    Laurent

  9. Publicité

Discussions similaires

  1. Prob USART en interruption avec PIC 16F628
    Par marcel6566 dans le forum Électronique
    Réponses: 13
    Dernier message: 13/07/2008, 14h11
  2. USART du PIC16F628
    Par Patrick dans le forum Électronique
    Réponses: 2
    Dernier message: 01/06/2008, 16h28
  3. usart + pic + signaux inversé
    Par KHEOPS1982 dans le forum Électronique
    Réponses: 2
    Dernier message: 08/05/2008, 10h58
  4. Communication USART avec PIC et stockage dans I2c
    Par ieta_maher dans le forum Électronique
    Réponses: 0
    Dernier message: 23/12/2007, 16h51
  5. USART sur PIC
    Par noisyboxes dans le forum Électronique
    Réponses: 6
    Dernier message: 23/04/2007, 08h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.