Révision 892
Ajouté par frkanaan il y a presque 4 ans
c1.c | ||
---|---|---|
#include "uart0.h"
|
||
#include "uart0.c"
|
||
|
||
|
||
void A2Z(void);
|
||
int rectrame (char * Buffer);
|
||
int hex_int(char *c);
|
||
|
||
|
||
void A2Z(void)
|
||
{
|
||
unsigned char i;
|
||
//while(1)
|
||
for(i='A'; i<='Z'; i++)
|
||
uart0_tx(i);
|
||
}
|
||
|
||
|
||
int rectrame (char * buffer)
|
||
{
|
||
int i = 0;
|
||
int nb_caract = 0;
|
||
char char_recu;
|
||
char checksum_trame=0;
|
||
char checksum_fin_trame[3];
|
||
char calc_checksum = 0;
|
||
|
||
char_recu = uart0_rx();
|
||
|
||
while(char_recu != '$')
|
||
i = 0;
|
||
|
||
buffer[0] = '$';
|
||
|
||
while(char_recu != '*')
|
||
{
|
||
char_recu = uart0_rx();
|
||
|
||
buffer[i+1]= char_recu;
|
||
i++;
|
||
|
||
calc_checksum = calc_checksum ^ char_recu;
|
||
}
|
||
|
||
nb_caract = i;
|
||
return nb_caract;
|
||
}
|
||
|
||
int hex_int(char *c)
|
||
{
|
||
int i=0;
|
||
|
||
/*La boucle permet de travailler sur les deux derniers caractères du checksum de la trame reçue**/
|
||
for(i=0; i<2; i++)
|
||
{
|
||
/*si le caractère est entre 0 et 9 ->retranche en ascii '0', soit 48 en décimal*/
|
||
if(c[i]>='0' && c[i]<='9')
|
||
c[i] = c[i]-48;
|
||
|
||
/*si le caractere est superieur a 10, soit A en hex ->retranche le nombre 55*/
|
||
if(c[i]>='A')
|
||
c[i] = c[i]-55;
|
||
}
|
||
/*entier_cheksum= c[1] + 16*c[0]*/
|
||
return( c[1]+16*c[0] );
|
||
}
|
||
|
||
|
||
void main(void)
|
||
{
|
||
|
||
char c;
|
||
char buffer;
|
||
int i, nb_caractere;
|
||
|
||
uart0_init();
|
||
|
||
//c = '3';
|
||
while(1)
|
||
{
|
||
char trame[128];
|
||
c = uart0_rx();
|
||
uart0_tx(c);
|
||
nb_caractere = rectrame(trame);
|
||
//alphabet();
|
||
}
|
||
}
|
||
|
Formats disponibles : Unified diff
clavier marche (tp4b1)+ avancement et mise en place des tp4c12