Projet

Général

Profil

« Précédent | Suivant » 

Révision 430

Ajouté par axfont il y a plus de 6 ans

départ feu vert marche

Voir les différences:

branch/font/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff002a
RESET=ff002c
branch/font/Emb_App/programme_principal_etud.c
#define vitesse_decalage 15 //vitesse pour se d?caler ? gauche de la route avant les barils (piste noire)
#define vitesse_cote_piste 12 //vitesse pour longer la piste (piste noire)
#define vitesse_saut_noir 43 //vitesse pour passer le saut (piste noire)
#define vitesse_recep_noir 20 //vitesse pour passer le saut (piste noire)
#define vitesse_recep_noir 15 //vitesse pour passer le saut (piste noire)
#define vitesse_terre 15 //vitesse pour passer le chemin en terre (piste noire)
#define angle_tourelle 450 //angle de la tourelle par d?faut
......
int go = 0; //variable pour d?part de la voiture
int valide = 0;
int cpt = 0;
int a=0;
//Lis la valeur meusr?e par le t?l?m?tre
void lecture_telemetre(){
CanFrame requete;
......
CanFrame requete;
UINT flag;
go = 0;
while(1){
//Lecture de la zone
requete.data.id = 'M';
......
wai_flg(ev_periph, 0x06, TWF_ANDW, &flag); //Attente de la r?ponse
feu = periph[ADDR('M')].val; //acquisition du dernier capteur franchi
feuv = (feu & 0x8000);
if(feuv == 0x8000) go = 1;
dly_tsk(6);
}
}
......
UINT flag;
//Attente avant d?part
// if( feuv == 0x8000)go = 1;
// if(go == 1){
dly_tsk(4000);
comm.data.id = 'V';
comm.data.rtr = 0;
comm.data.val = vitesse; //D?marrage
snd_dtq(CanTx, comm.msg);
dly_tsk(4000);
while(1){
while(1){
comm.data.id = 'V';
comm.data.rtr = 0;
if(p0_4 == 1){
if(angle_roue > 40 || angle_roue < -40){ //ralentissement de la voiture si angle demand? trop grand
vitesse = vitesse_virage;
......
if(num_piste1 == 4 && capteur == 0x5202){ //vitesse adapt?e pour le retour au milieu de la route piste noire
vitesse = vitesse_retour_piste;
}
if(num_piste1 == 4 && capteur == 0x4a01){ //vitesse adapt?e pour le d?calage ? gauche de la route piste noire
if(num_piste1 == 4 && capteur == 0x4a01){ //vitesse adapt?e pour le d?calage ? droite de la route piste noire
vitesse = vitesse_decalage;
}
if(num_piste1 == 4 && capteur == 0x6a00){ //vitesse adapt?e pour passer les tonneaux piste noire
vitesse = vitesse_pnoire;
}
if(num_piste1 == 4 && capteur == 0x5602){ //vitesse adapt?e pour longer le bord de la piste noire
vitesse = vitesse_cote_piste;
}
if(num_piste1 == 4 && capteur == 0x6a01){ //vitesse adapt?e pour le saut piste noire
vitesse = vitesse_saut_noir;
}
if(num_piste1 == 4 && capteur == 0x6a00){ //vitesse adapt?e pour passer les tonneaux piste noire
vitesse = vitesse_pnoire;
}
if(num_piste1 == 4 && capteur == 0x6a04){ //vitesse adapt?e pour
if(num_piste1 == 4 && capteur == 0x6a04){ //vitesse adapt?e pour la reception du saut piste noire
vitesse = vitesse_recep_noir;
}
if(num_piste1 == 4 && capteur == 0x5604){ //vitesse adapt?e pour la route de terre (piste noire)
......
else if(p0_4 == 0) {
vitesse = 0;
}
if(go == 1){
comm.data.id = 'V';
comm.data.rtr = 0;
comm.data.val = vitesse;
snd_dtq(CanTx, comm.msg);
}
dly_tsk(7);
}
//}
}
......
can_init();
clavier_init(1);
capture_init();
capture_init();
go = 0;
sta_tsk(ID_periph_rx);
sta_tsk(ID_lecture_piste);

Formats disponibles : Unified diff