Projet

Général

Profil

691 yoguer
#include "sfr32c87.h"
void uart0_init(void);
void uart0_tx(char c);
820 yoguer
char uart0_rx(void);
int rectrame (char *pBuffer);
691 yoguer
674 yoguer
void main(void)
691 yoguer
{
820 yoguer
char c,Buffer[200],nb_cara=0,i;
691 yoguer
uart0_init();
820 yoguer
691 yoguer
while(1)
{
820 yoguer
//uart0_tx('A');
//c=uart0_rx();

nb_cara=rectrame(&Buffer[0]);

for(i=0;i<nb_cara;i++)
{
uart0_tx(Buffer[i]);
}
691 yoguer
uart0_tx('A');
}
}

820 yoguer
//*****************************************************************
691 yoguer
void uart0_init(void)
820 yoguer
{
691 yoguer
u0mr=0x05;
820 yoguer
u0c0=0x11; //transmet sur front descendant, recoit sur montant, MSB first
u0brg=32; //4800 Baud avec fj=f8, 20Mhz/8
u0c1=0x05; //
674 yoguer
691 yoguer
pd6_2=0; //on touche pas ? au autre broche de p6 sinon bug (uart1)
pd6_3=1;

820 yoguer
psl0=0x00;
691 yoguer
ps0_3=1;
ps0_2=0;
674 yoguer
}
691 yoguer
//-------------------------------------------------------------------

void uart0_tx(char c)
{
820 yoguer
u0tb=c;
691 yoguer
}

820 yoguer
char uart0_rx(void)
{
char c,f;

while(ri_u0c1!=1);
c=u0rb;

return c;
}
691 yoguer
820 yoguer
int rectrame (char *pBuffer)
{
int i=0;
char tampon;

while(uart0_rx()!= '$');

tampon=uart0_rx();

while(tampon!='*')
{
*(pBuffer+i) = tampon;
i++;
tampon=uart0_rx();
}

return i;
}
691 yoguer