Révision 902
Ajouté par jcguifodjo il y a environ 4 ans
branch/GUIFO/sp4a12/main.c | ||
---|---|---|
|
||
//Calcul de la distance ? la zone dangereuse la plus proche
|
||
int distance_a_la_proche_zone(Position p, Zone r[],int nb_zones, float *d){
|
||
int i;
|
||
int i,indx=0;
|
||
float dist;
|
||
if(nb_zones!=0){
|
||
(*d)=calcul_distance(p,r[0].rpos);
|
||
(*d)=calcul_distance(p,r[indx].rpos);//On suppose que la toute premi?re zone du tableau est celle dont la distance est la plus proche
|
||
|
||
for(i=1;i<nb_zones;i++){
|
||
|
||
dist=calcul_distance(p,r[i].rpos);
|
||
dist=calcul_distance(p,r[i].rpos);//On calcul la distance de notre position aux autres zones
|
||
|
||
if(dist<(*d)){
|
||
if(dist<(*d)){//On compare cette distance calcul?e ? la toute premi?re distance et si elle est inf?rieure elle devient notre nouvelle zone ? distance la plus proche
|
||
(*d)=dist;
|
||
indx=i;
|
||
}
|
||
}
|
||
|
||
}
|
||
return i;
|
||
return indx;
|
||
|
||
}
|
||
//Fonction ? modifier !!!!!
|
branch/GUIFO/sp4c12/TPC/TPC/TPC.c | ||
---|---|---|
/***********************************************************************/
|
||
#include "sfr32c87.h"
|
||
|
||
|
||
//Initialisation du port s?rie
|
||
void uart0_init(void)
|
||
{
|
||
//Initialisation des ports
|
||
... | ... | |
ps0_3 = 1;
|
||
|
||
//Configuration du registre u0mr
|
||
smd0_u0mr = 1;
|
||
smd1_u0mr = 0;
|
||
smd2_u0mr = 1;
|
||
ckdir_u0mr = 0;
|
||
stps_u0mr = 0;
|
||
prye_u0mr = 0;
|
||
iopol_u0mr = 0;
|
||
smd0_u0mr = 1;
|
||
smd1_u0mr = 0;
|
||
smd2_u0mr = 1;
|
||
ckdir_u0mr = 0;
|
||
stps_u0mr = 0;
|
||
prye_u0mr = 0;
|
||
iopol_u0mr = 0;
|
||
|
||
//configuration du rgistre U0SMR
|
||
u0smr = 0x00;
|
||
... | ... | |
//Configuration des registres s0tic et s0ric
|
||
s0tic = 0x00;
|
||
s0ric = 0x00;
|
||
|
||
crs_u0c0 = 0;
|
||
te_u0c1 = 1;
|
||
re_u0c1 = 1;
|
||
|
||
}
|
||
|
||
void uart0_tx(char c)
|
||
{
|
||
|
||
crd_u0c0 = 1;
|
||
crs_u0c0 = 0;
|
||
u0tb = c;
|
||
te_u0c1 = 0;
|
||
|
||
|
||
while(ti_u0c1==0);//On attend tant que le registre u0tb n'est pas vide
|
||
u0tb = c;//Envoi du caract?re par ?criture dans le registre u0tb
|
||
|
||
}
|
||
char uart0_rx()
|
||
{
|
||
char c;
|
||
crd_u0c0 = 1;
|
||
crs_u0c0 = 0;
|
||
re_u0c1 = 1;
|
||
|
||
while(ri_u0c1==1);//On attend tant que le registre u0rb n'est pas disponible ? recevoir un nouveau caract?re
|
||
c= u0rb;
|
||
return c;
|
||
}
|
||
... | ... | |
{
|
||
char c='A';
|
||
uart0_init();
|
||
while (1){
|
||
uart0_tx(c);
|
||
}
|
||
|
||
uart0_rx(c);//Reception du caract?re par lecture du registre u0rb
|
||
|
||
}*/
|
||
void main(void)
|
||
void Alphabet(void)
|
||
{
|
||
char alpha;
|
||
|
||
uart0_init();
|
||
te_u0c1 = 1;
|
||
for(alpha = 'A' ; alpha <='Z' ; alpha++)
|
||
{
|
||
while(ti_u0c1==0);
|
||
u0tb=alpha;
|
||
for(alpha = 'A' ; alpha <='Z' ; alpha++)
|
||
{
|
||
uart0_tx(alpha);
|
||
}
|
||
}
|
||
/*
|
||
int rectrame(char *buffer){
|
||
int i=0;
|
||
char recu;
|
||
recu=uart0_rx();
|
||
|
||
while(recu!='&');//Tant qu'on ne recoit pas le carat?re de debut de trame on attend
|
||
while(recu!='*')//On lit la trame jusqu'au dernier caract?re avant *
|
||
{
|
||
buffer[i]=recu;
|
||
i++;
|
||
recu=uart0_rx();
|
||
}
|
||
return i;
|
||
}
|
||
*/
|
||
/* fonction qui transforme un code hexad?cimal sur deux caract?res en valeur d?cimale
|
||
int hex2int(char *c){
|
||
int i,base;
|
||
for(i=0;i<2;i++){
|
||
if(c[i]>='0' && c[i]<='9'){//Si le caract?re est entre 0 et 9 on retranche 48 pour avoir sa valeur correspondante en decimal d'apr?s la table ASCII
|
||
c[i]=c[i]-48;
|
||
}
|
||
else if(c[i]>='A'&& c[i]<='F'){//Si le caract?re est entre A et F on retranche 55 pour avoir sa valeur correspondante en decimal d'apr?s la table ASCII
|
||
c[i]=c[i]-55;
|
||
}
|
||
}
|
||
base=c[1]+(16*c[0]);
|
||
return base;
|
||
|
||
}
|
||
*/
|
Formats disponibles : Unified diff
Ecriture des fonctions rectrame et hex2int. Ajout de commentaires des séances a2 et a3