|
/***********************************************************************/
|
|
/* */
|
|
/* FILE :c1.c */
|
|
/* DATE :Thu, Jun 03, 2021 */
|
|
/* DESCRIPTION :main program file. */
|
|
/* CPU GROUP :87B */
|
|
/* */
|
|
/* This file is generated by Renesas Project Generator (Ver.4.18). */
|
|
/* NOTE:THIS IS A TYPICAL EXAMPLE. */
|
|
/***********************************************************************/
|
|
|
|
#include "sfr32c87.h"
|
|
#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();
|
|
}
|
|
}
|
|
|