jai besoin de l'aide pour utiliser le module usart de PIC16F876A
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

jai besoin de l'aide pour utiliser le module usart de PIC16F876A



  1. #1
    LABTOOL48

    jai besoin de l'aide pour utiliser le module usart de PIC16F876A


    ------

    bonjour

    j'ai besoin de votre aide j'utilise le module usart de pic16f876a en réception avec interruption et l'émission sans interruption, pour la réception je reçois bien les trames envoyé par PC j'ai seulement le probleme avec l'émission le PC ne reçoit que le premier octet (0x44) et les autres octets me les remplacer par (0x44,0xa6,0xf5)

    merci d'avance pour votre aide

    Code:
    /******************************************************************************
    *                                                                             *
    *                                                                             *
    *                                                                             *
    *                                                                             * 
    ******************************************************************************/
    #include <htc.h>
    #define _XTAL_FREQ 4000000
    __CONFIG (XT & WDTDIS & PWRTEN & BORDIS & WRTEN & LVPDIS & DUNPROT & DEBUGDIS);
    unsigned char PR = 0;
    void Init_port(void);
    void Emet_Car(unsigned char caractere);
    unsigned char inBuffer[32];
    /******************************************************************************
    *                                                                             *
    *                                                                             *
    *                                                                             * 
    ******************************************************************************/
    int main(void)
    {
        int i;
        int LOOP = 1;
        Init_port();
        while(LOOP)
        {
           for(i = 0;i < 4;i ++)
           {
                __delay_ms(100);
                PORTB = inBuffer[i];
                __delay_ms(100);
           }
           PR = 0;
           Emet_Car(0x44);
           Emet_Car(0x33);
           Emet_Car(0x55);
     
        }  
        return 0;
    }
    /******************************************************************************
    *                                                                             *
    *                                                                             *
    *                                                                             *
    ******************************************************************************/
    void Init_port(void)
    {
        TRISC = 0b10000000;
        TRISB = 0x00;
        PORTB = 0x00;
     
        SPBRG = 25;       
        TXSTA = 0b00100110; 
        RCSTA = 0b10010000;
     
        RCIE = 1;       
        PEIE = 1;
        GIE  = 1;       
    }
    /******************************************************************************
    *                                                                             *
    *                                                                             * 
    *                                                                             *
    ******************************************************************************/
    void Emet_Car(unsigned char caractere)
    {
            while(!TRMT) continue;
            TXREG = caractere;
     
    }
    /******************************************************************************
    *                                                                             *
    *                                                                             *
    *                                                                             * 
    ******************************************************************************/
    static void interrupt isr(void)
    {
     
        if(RCIF)
        {
            inBuffer[PR++] = RCREG;
            RCIF = 0;
        }
     
    }

    -----

  2. #2
    LABTOOL48

    Re : jai besoin de l'aide pour utiliser le module usart de PIC16F876A

    j'ai trouvé mon problème mais je ne sais pas comment le corriger j'ai fixé une tempo de 2ms entre chaque octet envoyé et mon programme marche bien je cherche maintenant le quel flag a tester pour savoir que l'émission de premier octet est terminé pour puisse envoyer le reste sans utiliser des tempos

    et merci d'avance

Discussions similaires

  1. SVP aider moi je ny arrive pas et j'ai personne pour m'aider jai besoin de quelqun
    Par invitebbfcd538 dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 16/06/2014, 09h40
  2. [PIC18F]-module USART - problème avec le bit OERR
    Par jorg1n dans le forum Électronique
    Réponses: 6
    Dernier message: 28/10/2009, 07h37
  3. bjr je suis en premier S et jai besoin d'aide pour un devoir quelqu'un peut il m'aider SVP MERCi
    Par invitedc47d650 dans le forum Mathématiques du collège et du lycée
    Réponses: 16
    Dernier message: 04/10/2009, 10h35
  4. [Blanc] Besoin d'aide pour cabler module de gestion pour moteur SELNI
    Par invitef01498cf dans le forum Dépannage
    Réponses: 17
    Dernier message: 20/05/2008, 05h52
  5. jai besoin daide pour installer Winex
    Par chez_bob dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 08/07/2004, 01h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.