Bonjour je suis en projet pour crée un dialogue RS485 entre deux pics. Mon souci c'est que j'utilise MPLAB et le Compilateur C18.
j'utilise la library USART mais je ne maitrise pas trop le C . g un maitre un esclave le mettre envoie "coucou" par la com et avec l'esclave qui doit normalement avoir un nom pour l identifier je recoit mes je n arrive a receptionner la chaine de caractere pour la renvoyer sur le LCD .
auriez vous quelque code source pour la liaison mets surtout comment recuperer cette chaine recu pour l afficher
#include <p18f2525.h>
#include <xlcd.h>
//*********************************************************************
// Temporisation nécessaires a la bibliothèque XLCD
void DelayFor18TCY(void)
{
Delay10TCYx(2);
}
void DelayPORXLCD(void)
{
Delay1KTCYx(15); //Delai de 15 ms
}
void DelayXLCD(void)
{
Delay1KTCYx(20); //Delai de 20 ms
}
rom char mess[]="\nLes coms ok \n";
// indique qu'un caractère est dans RCREG de l'USART
char data_recue(void) // reception d'une interruption
{
if (PIR1bits.RCIF) /* char recu en reception*/
{
PIR1bits.RCIF=0; // efface drapeau
return (1); // indique qu'un nouveau caractère est dans RCREG
}
else return (0); // pas de nouveau caractère reçu
}
// envoie un caractère sur USART
void putch(unsigned char c) //putch est défini sur le port série
{
while(!TXSTAbits.TRMT); // pas de transmission en cours ?
TXREG=c; /* envoie un caractère */
while(!PIR1bits.TXIF);
}
// envoie une chaine en ROM
void putchaine(rom char* chaine)
{
while (*chaine) putch(*chaine++);
}
void main(void)
{
SPBRG = 25; /* configure la vitesse (BAUD) 9600 N 8 1*/
TXSTA = 0x24;
RCSTA = 0x90; /* active l'USART*/
OpenXLCD (FOUR_BIT & LINES_5X7 );
SetDDRamAddr(0); // positionne le curseur en x,y
putrsXLCD(mess); // intro
while(1) // echo
{
if (data_recue()) putch(RCREG);
SetDDRamAddr(0);
putrsXLCD(RCREG);//le probleme y a t il un probleme de language de cast ?
}
}
Merci d avance pour votre aide