Bonjour à tous,
Alors voila,
J’envoie une octet de donner sur le PIC (18F45K80) via le port USB du PC.
Sauf que avec n'importe quelle valeur de l'octet envoyé, l'EUSART reçoit toujours 0 sur le RX1.
Je voulais donc savoir si vous pourriez m'aider a comprendre pourquoi ?
De plus, j'utilise une horloge de 20Mhz.
Voici le code que j'ai écrit:
J’espère que vous allez pouvoir m'aider car je galère depuis pas mal de temps.Code:/************** P R A G M A *********************************************************/ #pragma config XINST = OFF //Pour Eviter certains bugs. /************** I N C L U D E S *****************************************************/ #include <p18f45k80.h> #include <delays.h> #include <usart.h> // Afin de pouvoir utiliser les commandes EUSART. #include "temporisation.h" // Pour simplifier les delays. /************* P R I V A T E P R O T O T Y P E S *************************************/ void Init_USART1(void); char READ_USART(void); /************* D E C L A R A T I O N S ************************************************/ void Init_USART1(void) { // Permet d'initialiser le USART1. Open1USART( USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 129 ); // Permet d'initialiser le BAUD rate pour une meilleur confuguration. baud1USART (BAUD_IDLE_CLK_HIGH & BAUD_8_BIT_RATE & BAUD_WAKEUP_ON & BAUD_AUTO_OFF); }// fin de Init_USART1() void main(void) { unsigned char Tableau[3], oct1, oct2; // déclaration des variables propres à la fonction main. int i; Init_USART1(); //Initialisation et configuration de l'USART1. TRISBbits.TRISB0 = 0 ; // LED 0 déclarer en sortie. TRISBbits.TRISB1 = 0 ; // LED 1 déclarer en sortie. TRISBbits.TRISB2 = 0 ; // LED 2 déclarer en sortie. TRISBbits.TRISB3 = 0 ; // LED 3 déclarer en sortie. LATBbits.LATB0 = 1 ; // Tous les LEDs sont éteintes.(logiques inverses) LATBbits.LATB1 = 1 ; LATBbits.LATB2 = 1 ; LATBbits.LATB3 = 1 ; //Test de LED. LATBbits.LATB0=0; while(1) { if(DataRdy1USART()) { //oct1=Read1USART(); //oct2=Read1USART(); gets1USART(Tableau , 2); LATBbits.LATB1=0; if(Tableau[1] == 0) { LATBbits.LATB2=0; } } } Close1USART(); }
Cordialement
Nexyssify
-----