Projet

Général

Profil

/***********************************************************************/
/* */
/* FILE :uart0.c */
/* DATE :Wed, Jun 02, 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"


void uart0_init(void)
{
u0mr = 0x05;
//Param?trage des modes sp?ciaux
u0smr = 0x00;
u0smr2 = 0x00;
u0smr3 = 0x00;
u0smr4 = 0x00;
u0c0 = 0x11;
//Param?trage des bauds
u0brg = 32;
u0c1 = 0x00;
pd6_0 =1;
pd6_1 =0;
pd6_2 =0;
pd6_3 =1;
ps0_0 =1;
ps0_1 =0;
ps0_2 =0;
ps0_3 =1;
u0c1 = 0x05;
}

void uart0_tx (char c)
{
while ( ti_u0c1 !=1);
u0tb = c;
}

char uart0_rx()
{
while (ri_u0c1 !=1);
return u0rb;
}


char alphabet(void)
{
int c = 65;
uart0_init();
while(1)
{
uart0_tx((char) c);
c = (int)c +1;
if (c==91)
{
c = (int) 65;
}
}
}



int hex2int( char*c)
{
int i =0;
int dec =0;
for( i; i<=1;i++)
{
if(c[i] >=65 && c[i]<=70)
{
c[i] = c[i]-55;
}
else
{
c[i] = c[i]-48;
}
}
dec = c[0]*16+c[1];
return dec;
}

int trame_ok;

int recTrame (char *Buffer)
{
int i=0;
char CS =0x00;
int CS_dec;
char CS_reel[2];
int CS_reel_dec;

char a;
while (uart0_rx() !='$');
a = uart0_rx();
while (a != '*')
{
Buffer[i] = a;
CS = Buffer[i]^CS;
i++;
a = uart0_rx();
}
CS_reel[0] = uart0_rx();
CS_reel[1] = uart0_rx();
CS_reel_dec = hex2int(CS_reel);
CS_dec = (int) CS;
if (CS_dec ==CS_reel_dec)
{
trame_ok =1;
}
else
{
trame_ok =0;
}
return i;
}

void main(void)
{
char nb1;
char nb2;
char trame[100];
uart0_init();
while (1)
{
nb1 = (char) (recTrame(trame))/10;
nb2 = (char) (recTrame(trame))%10;
if (trame_ok)
{
uart0_tx(nb1+48);
uart0_tx(nb2+48);
}
}
}







(10-10/11)