Bonjour...
Ce soir, le but du jeu est de faire communiquer deux de mes PICs via une liaison série...
J'ai besoin d'aide le comment...
Code source PIC1
Code:
CODE PIC qui reçoisCode:RCSTAbits.SPEN = 1; //Datasheet p 167 TRISCbits.TRISC7=1; // <entrée TRISCbits.TRISC6=0; // sortie OpenUSART( USART_TX_INT_OFF & //Sans interruptions USART_RX_INT_OFF & USART_ASYNCH_MODE & // Mode asynchrone USART_EIGHT_BIT & //8bits USART_CONT_RX & // j'ai aussi essayé SINGLE... Je ne connai pas la différence encore... USART_BRGH_HIGH, // Baude rate élevé 25 ); //Valeur standart de baudrate 9600 et quelque je crois tmp=0; while (1) { if (( PORTAbits.RA1 ==1)&&(tmp==0)) // Si j'appuie sur un bouton { LATAbits.LATA0 = 1; // J'allume la led tmp=1; WriteUSART('H'); // et aimerai envoyer le char H } else { LATAbits.LATA0 = 0; // Sinon j'éteind la led } }
Code:Code: RCSTAbits.SPEN = 1; TRISCbits.TRISC7=1; TRISCbits.TRISC6=1; /**********************************/ /* USART */ OpenUSART( USART_TX_INT_OFF & //EXACTEMENT LA MEME CHOSE QUE POUR L AUTRE USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 25 ); while(1) { car = ReadUSART(); if (car == 'H') { strcpypgm2ram (lcd_buffer, "OK "); //ALORS on écris OK sur le LCD printlcd(lcd_buffer); CloseUSART(); // et on ferme l'usart } } }
Concernant les branchements... La aussi interrogation...
J'ai relié... le Tx du pic 1 (qui envoie) au Rx du pic 2 (qui reçoie)....
Est ce correcte ? J'ai aussi relié les deux masses...
Merci pour votre retour d'expérience...
Compilateur : C18
PIC1 (envoie) : 18f252
PIC2 (reçoie) : 18F4520
-----