Projet

Général

Profil

734 smseck1
/***********************************************************************/
/* */
757 smseck1
/* FILE :sp4c1.c */
734 smseck1
/* 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. */
/***********************************************************************/
757 smseck1
#include "sfr32c87.h"
//les prototypes
void uart0_init (void);
void uart0_tx(char c);
void alphabet(char *chaine);
char uart0_rx(void);
int rectrame (char * Buffer);
734 smseck1
757 smseck1
//Initialisation du port s?rie 0
void uart0_init(void)
734 smseck1
{
757 smseck1
u0mr = 0x05;
u0brg = 0x20;
u0c0 = 0x11;
u0c1 = 0x05;
pd6 = 0x08;
ps0 = 0x08;
psl0=0x00;
734 smseck1
}
757 smseck1
//Envoi d'un caract?re
void uart0_tx(char c)
{
while(ti_u0c1 !=1);
u0tb=c;
}
//Envoi une suite de caract?re de ?A? ? ?Z?
void alphabet(char *chaine)
{
int i=0;
while(chaine[i]!='\0')
{
uart0_tx(chaine[i]);
i++;
}
}
//fonction d'attente d'un caract?re sur la liaison s?rie et renvoie le caract?re suivant dans l'alphabet
char uart0_rx(void)
{
while(ri_u0c1!=1);
return u0rb;
}

//copie la trame re?ue dans le tampon buffer et signale la bonne r?ception d?une trame par une valeur de retour non nulle correspondant au nombre de caract?res pr?sents dans la trame
int Rectrame(char *Buffer)
{
int i =0;
char caractere_recu;
char checksum = '0';

caractere_recu = uart0_rx();/**lecture du caractere recu**/
while ( caractere_recu != '$') /**detection trame**/
{
i = 0;
checksum ='0';
}

while ( caractere_recu != '*')/**memorisation de la trame re?ue**/
{
caractere_recu = uart0_rx();
Buffer[i++] = caractere_recu;
// checksum = cheksum^caractere_recu;
}

return i ;
}


void main ()
{
char chaine[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
uart0_init();
while(1)
alphabet(chaine);
Rectrame(char *Buffer)
}