Projet

Général

Profil

« Précédent | Suivant » 

Révision 455

Ajouté par audercoux il y a plus de 6 ans

Passage de la piste noir ok

Voir les différences:

branch/decroux/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff001c
RESET=ff001a
branch/decroux/Emb_App/programme_principal_etud.c
unsigned int Mode;
// Tache qui met la tourelle a 45degres
void asservissement_tourelle()
{
......
commTourel.data.id='T'; //Commade en vitesse de la tourelle poant le t?l?metre
commTourel.data.rtr=0;
commTourel.data.val=kt*(450-alpha); //Corecteur propotionel
snd_dtq (CanTx,commTourel.msg);
snd_dtq (CanTx,commTourel.msg);
dly_tsk(10);
}
}
......
snd_dtq (CanTx,requeteDis.msg); // Interrogation du peripherique
dis=periph[ADDR('U')].val; // Contient la derniere valeur renvoyee par le simulateur
periph[ADDR('U')].maj; // Incremente a chaque reception
//Assevicement
if(Mode==0x8304 || Mode==0x0304)//On est sur la piste noir
{
if(dis>5000 || dis<400 ||capt==0x6208) //Pour passer les trous et les tonneau
if(capt==0x7608)// Apr?s le saut
{
LED_R=1;
commRoues.data.id='D'; // Commande de l'angle des roues
commRoues.data.rtr=0; //Indique une requete d'?criture
commRoues.data.val=kr*(dis-700); // Correction de la disance
snd_dtq(CanTx,commRoues.msg);
}
else if(dis>5000 || dis<400 || capt==0x7210) //Pour passer les trous et les tonneau
{
commRoues.data.id='D'; // Commande de l'angle des roues
commRoues.data.rtr=0; //Indique une requete d'?criture
commRoues.data.val= 0; // Correction de la disance
snd_dtq(CanTx,commRoues.msg);
}
......
commRoues.data.val=kr*(dis-1010); // Correction de la disance
snd_dtq(CanTx,commRoues.msg);
}
else if(capt==0x6208)//Passage de la bosse
{
if(dis>740 || dis<670)
{
commRoues.data.id='D'; // Commande de l'angle des roues
commRoues.data.rtr=0; //Indique une requete d'?criture
commRoues.data.val= 0; // Correction de la disance
snd_dtq(CanTx,commRoues.msg);
}
else
{
commRoues.data.id='D'; // Commande de l'angle des roues
commRoues.data.rtr=0; //Indique une requete d'?criture
commRoues.data.val=kr*(dis-700); // Correction de la disance
snd_dtq(CanTx,commRoues.msg);
}
}
else
{
commRoues.data.id='D'; // Commande de l'angle des roues
......
}
else
{
if(dis>1000 ) //Pour passer les trous et les tonneau
if(dis>1000 ) //Pour passer les trous
{
commRoues.data.id='D'; // Commande de l'angle des roues
commRoues.data.rtr=0; //Indique une requete d'?criture
......
void vitesse4(unsigned int valcapt)
{
CanFrame commVit;
if(capt==0x6308 || capt==0x4a01||capt==0x6208) // Rallentissement pr?s du tonneau
if( capt==0x4a01||capt==0x6208 ||capt==0x7608 ||capt==0x7620) // Rallentissement pr?s du tonneau, pour la bosse et apr?s le saut
{
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=15;
snd_dtq (CanTx,commVit.msg);
}
else if(valcapt==0x7210)
{
commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=42;
snd_dtq (CanTx,commVit.msg);
}
else
{ commVit.data.id='V';
commVit.data.rtr=0;
commVit.data.val=25; //Reprise de vitesse une fois la voiure stabilis? piste rouge
commVit.data.val=25; //Reprise de vitesse une fois la voiture stabilis? piste rouge
snd_dtq (CanTx,commVit.msg);
}
}
......
ports_mcu();
lcd_init();
periph_init();
periph_nom("#AutoTest*");
periph_nom("Aurelie*");
can_init();
clavier_init(1);

Formats disponibles : Unified diff