Bonjour à tous,
je suis débutant en programmation sous Mplab en langage C.
Je cherche à utiliser un PIC24FJ128GB206 afin de lire des données provenant d'un port série et de la recopier vers un autre port, en y apportant quelques modifications.
pour l'instant je ne cherche qu'a écrire en boucle sur le port série UART1, sur les pic 24 on les pins sont configurable et je ne sais pas trop comment le faire. Sur le net je trouve des infos mais ça ne fonctionne pas.
voici le code que j'utilise :
Je pense qu'il doit y avoir des problèmes dans la rédaction du code mais je ne vois pas lesquels.Code:#include <p24FJ128GB206.h> //#include "HardwareProfile.h" #define USE_AND_OR /* To enable AND_OR mask setting */ #include <uart.h> #include <stdio.h> #include "PPS.h" //Re-map Pin library Peripheral Pin #include "Compiler.h" #include "p24fxxxx.h" #include "uart.h" //watchdog OFF //use PGx1 //jtag off _CONFIG1(FWDTEN_OFF & ICS_PGx1 & JTAGEN_OFF); //quartz <10 MHz //Primary Oscillator without PLL module // no clk switching _CONFIG2(POSCMOD_XT & OSCIOFNC_OFF & FCKSM_CSDCMD & FNOSC_PRI); //FCY=Fosc / 2 #define FCY 3685000UL // Define CPU frequency for correct __delay_ms() operation before including the libpic30.h file #include <libpic30.h> #define UART1_BAUDRATE 11 //9600 int main(void) { ////////////////////////////// //configure I/O //unlock Pin re-map __builtin_write_OSCCONL(OSCCON & 0xbf); //desactivate analog ANSB=0x0000; TRISEbits.TRISE4=0; //RE4 en sortie pour la Led verte TRISEbits.TRISE3=0; //RE3 en sortie pour la Led rouge TRISDbits.TRISD3=1; //RD3 en entrée pour Rx TRISDbits.TRISD4=0; //RE3 en sortie pour le Tx // Assign U1Rx To Pin R22 iPPSInput(IN_FN_PPS_U1RX,IN_PIN_PPS_RP22); // Assign U1Tx To Pin Rp25 iPPSOutput(OUT_PIN_PPS_RP25,OUT_FN_PPS_U1TX); //lock Pin re-map __builtin_write_OSCCONL(OSCCON | 0x40); ///////////////////////////// //configure peripheral CloseUART1(); OpenUART1(UART_EN & UART_NO_PAR_8BIT & UART_IrDA_DISABLE & UART_BRGH_SIXTEEN,UART_TX_ENABLE , UART1_BAUDRATE); ///////////////////////////// //LOOP while(1) { PORTEbits.RE3=1; __delay_ms(200); WriteUART1(153); __delay_ms(200); PORTEbits.RE3=0; } }
Si quelqu'un à une idée?
Par avance
Merci
Bruno
-----