root/branch/graffin/sp4c12/sp4C12/uart0.c @ 881
719 | magraffin | /***********************************************************************/
|
|
/* */
|
|||
/* FILE :sp4C12.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"
|
|||
#include "uart0.h"
|
|||
799 | magraffin | char tram[80];
|
|
881 | magraffin | char c,c1,c2,t1,t2,check=0,t3,t4,carac_tram=0;
|
|
int i=0,debut=0,fin_tram,validation=0;
|
|||
727 | magraffin | ||
719 | magraffin | void main(void)
|
|
{
|
|||
799 | magraffin | ||
719 | magraffin | uart0_init();
|
|
799 | magraffin | ||
727 | magraffin | /*
|
|
719 | magraffin | while (1)
|
|
{
|
|||
for (i=0;i<26;i++)
|
|||
{
|
|||
uart0_tx(65+i);
|
|||
727 | magraffin | ||
719 | magraffin | }
|
|
727 | magraffin | ||
719 | magraffin | }
|
|
727 | magraffin | */
|
|
while (1)
|
|||
{
|
|||
881 | magraffin | carac_tram=rectram(tram);
|
|
727 | magraffin | }
|
|
}
|
|||
719 | magraffin | void uart0_init(void)
|
|
{
|
|||
727 | magraffin | ||
719 | magraffin | u0mr=0x05;
|
|
727 | magraffin | u0smr=0x00;
|
|
u0smr2=0x00;
|
|||
u0smr3=0x00;
|
|||
u0smr4=0x00;
|
|||
u0c0=0x11;
|
|||
719 | magraffin | u0brg=0x20;
|
|
727 | magraffin | u0c1=0x00;
|
|
pd6_0=0;
|
|||
pd6_1=0;
|
|||
pd6_2=0;
|
|||
pd6_3=1;
|
|||
ps0_0=0;
|
|||
ps0_1=0;
|
|||
ps0_2=0;
|
|||
ps0_3=1;
|
|||
u0c1=0x05;
|
|||
719 | magraffin | }
|
|
void uart0_tx(char c)
|
|||
{
|
|||
while (ti_u0c1!=1);
|
|||
u0tb=c;
|
|||
727 | magraffin | }
|
|
char uart0_rx(void)
|
|||
{
|
|||
799 | magraffin | while (!ri_u0c1);
|
|
727 | magraffin | return u0rb;
|
|
799 | magraffin | }
|
|
int decode_int(char ch)
|
|||
{
|
|||
char res;
|
|||
if (ch>=0x30 && ch<=0x39){
|
|||
res=ch-48;
|
|||
}
|
|||
if (ch>=0x41 && ch<=0x46){
|
|||
res=ch-55;
|
|||
}
|
|||
return (res);
|
|||
}
|
|||
881 | magraffin | int rectram(char *buffer){
|
|
799 | magraffin | fin_tram=0;
|
|
881 | magraffin | validation=0;
|
|
do{
|
|||
799 | magraffin | c=uart0_rx();
|
|
if (c=='\n' || c=='\r'){
|
|||
881 | magraffin | fin_tram=1;
|
|
799 | magraffin | }
|
|
if (c=='*'){
|
|||
/*p1_1=1;
|
|||
while (i!=10000){i++;}
|
|||
p1_1=0;*/
|
|||
881 | magraffin | //*(buffer+i)
|
|
799 | magraffin | c1=uart0_rx();
|
|
c2=uart0_rx();
|
|||
debut=0;
|
|||
881 | magraffin | i+=3;
|
|
799 | magraffin | t1=(check&0xf0)>>4;//decode_int(c1);decode_int(c1);
|
|
t2=check&0x0f;//decode_int(c2);decode_int(c2);
|
|||
t3=decode_int(c1);
|
|||
t4=decode_int(c2);
|
|||
if (t1==t3 && t2==t4 ){
|
|||
validation=1;}
|
|||
}
|
|||
if (debut==1){
|
|||
i++;
|
|||
881 | magraffin | *(buffer+i)=c;
|
|
799 | magraffin | check=check^c;
|
|
}
|
|||
if (c=='$'){
|
|||
/*p1_0=1;
|
|||
while (i!=10000){i++;}
|
|||
p1_0=0;*/
|
|||
881 | magraffin | i=0;
|
|
799 | magraffin | debut=1;
|
|
881 | magraffin | *buffer=c;
|
|
799 | magraffin | }
|
|
}
|
|||
881 | magraffin | while (fin_tram==0);
|
|
return i+1;
|
|||
}
|