cs_serge14
Messages postés1Date d'inscriptionlundi 11 juillet 2005StatutMembreDernière intervention11 juillet 2005
-
11 juil. 2005 à 23:54
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 2009
-
12 juil. 2005 à 08:40
Bonjour.je suis en sstage et je dois coder un protocole de transmission /reception de donées avec
le pic 18f4550.malgré mes efforts pour comprendre les 400 pages de la doc et ce programme que j'au ecrit:
rom char mess[]="";
//indique qu'un char est dans le RCREG
char data_recue(void)
{
if(PIR1bits.RCIF)//char en reception
{
PIR1bits.RCIF=0;//on attend un autre message
return 1;}
else return 0;
}
//envoie un char sur URSAT
void putch(unsigned char c)
{
while(!TXSTAbits.TRMT);//si tsr est plein,tourner en boucle
TXREG=c;//transmission au terminal de c
while(!PIR1bits.TXIF);//tourner en boucle tt que TXREG est plein
}
//envoie une chaine en rom
void putchaine(rom char* chaine)
{
while(*chaine)putch(*chaine); //essai sans la bloucle.
}
void main(void)
{
SPBRG=129;
TXSTA=0x20;
RCSTA=0x90;
putchaine(mess);//initialisation
while(1){
if (data_recue())putch(RCREG);//renvoie ce qu'e l'utilisatieur tape.
}
je ne reçois par le charactere que j'ai tapé.Il me renvoie tjrs autre chose.cela fait1e semaine que je reflechis là dessus.Si quelqu1 peut m'aider,franchement je le remercie sincerement.merci!!!
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 12 juil. 2005 à 08:40
Et puis j'allais oublier, ta boucle n'a aucun sens ! Tu n'initialises pas ta chaine, et tu demandes de boucler tant que *mess == a un certain caractere, or ici, tu ne boucleras jamais puis ce que *mess == 0;
Donc initialise ta chaine avec ce que tu desires envoyer.