Révision 764
Ajouté par jeleroy il y a presque 4 ans
branch/leroy/sp4c12/SP4_c1/SP4_c1/SP4_c1.c | ||
---|---|---|
void uart0_init(void);
|
||
void uart0_tx(char c);
|
||
char uart0_rx(void);
|
||
int rec_trame(char* buffer);
|
||
void reception_trame(char* trame);
|
||
|
||
|
||
void uart0_init(void){
|
||
//Configuration des ports en entr?e ou en sortie
|
||
pd6_2 = 0; //RX en entr?e
|
||
... | ... | |
u0brg = 0x20; //Transmission des donn?es ? la vitesse de 4800 bauds
|
||
|
||
}
|
||
|
||
void reception_trame(char* trame){
|
||
int i=0;
|
||
do{
|
||
trame[i] = uart0_rx();
|
||
uart0_tx(trame[i]);
|
||
i++;
|
||
}while ((uart0_rx() != 0x0D)||(uart0_rx() != 0x0A));
|
||
|
||
rec_trame(trame);
|
||
}
|
||
|
||
int rec_trame(char* buffer){
|
||
int valeur_retour,i = 0;
|
||
|
||
while ((buffer[i] != 0x0D)||(buffer[i] != 0x0A)){
|
||
valeur_retour++;
|
||
i++;
|
||
}
|
||
}
|
||
|
||
void uart0_tx(char c){
|
||
while(ti_u0c1 != 1); //tant qu'il n'y a pas de donn?e dans le registre de transmission
|
||
u0tb = c;
|
||
}
|
||
|
||
char uart0_rx(void){
|
||
while(ri_u0c1 != 1); //tant qu'il n'y a pas de donn?e dans le registre de r?ception
|
||
return u0rb; //retourne la valeur contenue dans le registre de r?ception
|
||
}
|
||
|
||
int i;
|
||
char trame[200];
|
||
char buffer[200];
|
||
|
||
void main(void)
|
||
{
|
||
|
||
{
|
||
uart0_init();
|
||
|
||
while(1){
|
||
uart0_tx(uart0_rx()+1);
|
||
reception_trame(trame);
|
||
}
|
||
|
||
|
||
}
|
Formats disponibles : Unified diff
test de la réception des trames GPS (en cours)