Bonjour à tous,
Je pensais avoir fait depuis longtemps le tour des difficultés avec la configuration de l'oscillateur et de l'usart, mais le programme ci-dessous (le plus simple du monde) ne fonctionne pas :
compilateur MCC18 V3.40 sous MPLAB:
Mis à part le fait que j'utilise l'oscillateur interne qui n'est pas très stable (mais je teste à 25°, donc je ne vois pas le souci). Je ne comprends pas ce résultat.Code:/** PIC EUSART TEST * /** C O N F I G U R A T I O N B I T S ******************************/ #pragma config FOSC = INTIO67, FCMEN = ON, IESO = OFF // CONFIG1H #pragma config PWRT = OFF, BOREN = ON, BORV = 18 // CONFIG2L #pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H #pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H #pragma config LVP = OFF, STVREN = ON, XINST = OFF, DEBUG = ON // CONFIG4L #pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L #pragma config CPB = OFF, CPD = OFF // CONFIG5H #pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L #pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H #pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L #pragma config EBTRB = OFF // CONFIG7H /** I N C L U D E S ***************************************************/ #include <p18f26k20.h> // SFR for PIC. #include <stdio.h> // printf()... /** P R O G R A M *****************************************************/ void main (void) { OSCCONbits.IRCF = 5; // Oscillator internal 4Mhz TRISCbits.RC6 = 1; // RC6 (TX) is output TRISCbits.RC7 = 0; // RC7 (RX) is input TXSTAbits.BRGH = 1; // High speed baud rate BAUDCONbits.BRG16 = 1; // 16 bit generator is used (SPBRH:SPBRG) SPBRG = 103; // 4 000 000 / (4(103 + 1)) = 9615.38 -> 0.16% error (OK) RCSTAbits.SPEN = 1; // USART enabled TXSTAbits.TXEN = 1; // Transmitter enabled while (1) { printf("TEST\r"); } } /** D E B U G R E S U L T ***************************************************** result in tera term pro 9600 8/N/1 : @PP@@PT TE@PDST@@PT @@P T@PTES@@PT TEPDRT@@PT @@P T@TDS@@PT TE@PDRT@@PT @P T@@TDS@@PT TEP@RT@PP @PPES@@RT TE@PDST@@PT @@PES@@PTT@@PT TEPDRT@PT @P T@@TDS@@PT TE@PDRT@PP @PPESP@PT T@PDS@@PT TE@PDST@@PT @@P T@TESP@PT @@PDS@@PTT@@PT TE@PDRT@PT @P T@@TDS@@PT TEPDRT@PP @PPESP@PT TE@PDST@@PT @@PESP@PTT@@PT TE@PDST@PT @@P T@@TDS@@PT TE@PDRT@@PT @P T@@TDS@@PT TEPDRT@PT @@PESP@RT T@PDS@@PT @PPESP@PTT@@PT @P@TDS@@PT@@PT TEPDRT@@PT @TEPDRT@@PP T@@TDS@@PT @PPSP@PT T@PDS@@PT @@PESP@PTT@@PT @@PTESP@PT@@PT TEPDST@PT @TE@PDRT@@PTTTDS@@PT @@P T@@PDS@@PT TE@PDRT@PT @PPESP@PT T@PDS@@PT @PTDS@@PTT@@PT TEPDRT@PT @@P T@@TDS@@PT TEPDRT@PT T@TDS ... */
Merci d'avance.
Eki
-----