bonjour à tous
je travaille sur un programme visant a faire communiquer deux pic.
un premier envoi des données à un deuxieme qui les recoit et les stockent pour les affiicher sur un LCD
l'emission et l'affcihage lcd fonctionne tres bien.
Mon probleme est dans la réception.
voici le code complet du recepteur
#include <p18F452.h>
#include <usart.h>
#include <delays.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#pragma config WDT = OFF
void configuration1(void);
void configuration2(void);
void lcd(void);
///////////////////////////////////////////////////////////////////////////////////////////////////////////
void configuration1(void)
{
TRISBbits.TRISB0=1;
TRISBbits.TRISB1=0;
TRISBbits.TRISB3=0;
TRISBbits.TRISB2=0;
TRISAbits.TRISA4=1;
TRISAbits.TRISA5=1;
PORTBbits.RB3=0;
PORTBbits.RB1=0;
PORTAbits.RA4=1;
PORTAbits.RA5=1;
PORTBbits.RB2=0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd(void)
{
InitLCD();
stdout = _H_USER;
TRISAbits.TRISA4 = 1;
printf(" ");
Gotoxy(0,1);
printf(" RS 232 ");
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
void configuration2(void)
{
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_BRGH_HIGH,
25 );
RCSTAbits.SPEN = 1;
}
int STX;
int LT;
int N;
int AFF;
int FLAG;
int IFI;
int IFh;
int VFI;
int VFh;
int CS;
void main(void)
{
configuration1();
configuration2();
lcd();
while(1)
{
putrsUSART("ATTENTE DATA");
while(!DataRdyUSART());
STX = getcUSART();
while(!DataRdyUSART());
LT = getcUSART();
while (!DataRdyUSART());
N = getcUSART();
while (!DataRdyUSART());
AFF = getcUSART();
while (!DataRdyUSART());
FLAG = getcUSART();
while(!DataRdyUSART());
IFI = getcUSART();
while (!DataRdyUSART());
IFh = getcUSART();
while (!DataRdyUSART());
VFI = getcUSART();
while (!DataRdyUSART());
VFh = getcUSART();
while (!DataRdyUSART());
CS = getcUSART();
Clrscr();
printf("LT = %d ", LT);
printf("N = %d" , N);
Gotoxy(0,1);
printf("AFF =%d", AFF);
printf("CS =%d" , CS);
}
}
le problème est le suivant: je reçoit les données correctes seulement lors du premier envoi apres le pic fait nimporte quoi..
avez vous une idee?
Merci
-----