Projet

Général

Profil

« Précédent | Suivant » 

Révision 498

Ajouté par maantourou il y a plus de 6 ans

dernire modif à revoir

Voir les différences:

branch/Antourou/Emb_App/programme_principal_etud.c
short nom_piste;
// fonction et asservissment
unsigned short position_Tourelle() // lire la position de la tourelle
//1: lire la position de la tourelle
unsigned short position_Tourelle()
{
CanFrame req;
UINT flag;
......
return periph[ADDR('R')].val;
}
void acquivitesse_Tour(int vit)//vitesse tourelle
//2:vitesse tourelle
void acquivitesse_Tour(int vit)
{
CanFrame comm;
comm.data.id = 'T';
......
comm.data.val = vit;
snd_dtq (CanTx,comm.msg);
}
unsigned short acqui_distance_Telem()// acquisition distance du telemetre en cm pour le calcul de la distance
//3: acquisition distance du telemetre en cm pour le calcul de la distance
unsigned short acqui_distance_Telem()
{
CanFrame requete;
UINT flag;
......
// distance=periph[ADDR('U')].val;
return periph[ADDR('U')].val;
}
void vitesse_vehicule(int vitesse)// r?glage de la vitesse du vehicule
// 4:r?glage de la vitesse du vehicule
void vitesse_vehicule(int vitesse)
{
CanFrame comm;
comm.data.id = 'V';
......
snd_dtq (CanTx,comm.msg);
}
// Fonction pour l'arr?t d'urgence de la voiture
//5: Fonction pour l'arr?t d'urgence de la voiture
void arret_urgence(void)
{ short stop;
CanFrame comm;
......
comm.data.rtr=0;
comm.data.val=0;
snd_dtq(CanTx, comm.msg);
LED_R=1;
LED_R=1;// allumer la led rouge en cas d'arr?t d'urgence
}
}
unsigned short distanceaumur()//acquisition distance des roues au mur en cm
//6:acquisition distance des roues au mur en cm
unsigned short distanceaumur()
{
unsigned short longtelem, pos_tourelle, distanceaumur;
longtelem = acqui_distance_Telem();
......
return distanceaumur;
}
void roue_directrices(unsigned short angleroue)// commande des roues (angle des en 10e de degre)
//7: commande des roues (angle des en 10e de degre)
void roue_directrices(unsigned short angleroue)
{
CanFrame comm;
......
snd_dtq (CanTx,comm.msg);
}
void regulation_roue() // asservissment avec Correcteur proportionnel afin de r?guler la direction des roues directrices
//8:asservissment avec Correcteur proportionnel afin de r?guler la direction des roues directrices
void regulation_roue()
{
unsigned short dConsigne , distance, k;
int angleroue;
......
}
}
// 9: asservissment tourelle
void asservissment_tour()
{
unsigned short posConsigne,posfinale;
......
dly_tsk(100);
}
}
// FONCTION LECTURE CAPTEUR
void Capteur(){
short capteur;
CanFrame requete;
UINT flag;
while(1)
{
requete.data.id='C';
requete.data.rtr=1;//Lecture de la valeur du capteur
periph[ADDR('C')].ev=0x03;
snd_dtq(CanTx,requete.msg);
wai_flg(ev_periph, 0x03, TWF_ANDW,&flag);
capteur=periph[ADDR('C')].val;
dly_tsk(20);
}
}
// MAIN:
......
}
*/
//foction qui permet de d?mmarrer en fonction de la couleur du feu
//foction qui permet de d?marrer le vehicule en fonction de la couleur du feu
void demarrage_voiture()
{ CanFrame requete;
UINT flag;
......
}
!!!!!!!!! REVOIR LES FONCTIONS NON TEST? sur mon ordi
*/
/*//Pour lire les valeurs des capteurs
void Capteur(){
short capteur;
CanFrame requete;
UINT flag;
while(1)
{
requete.data.id='C';
requete.data.rtr=1;//Lecture de la valeur du capteur
periph[ADDR('C')].ev=0x03;
snd_dtq(CanTx,requete.msg);
wai_flg(ev_periph, 0x03, TWF_ANDW,&flag);
capteur=periph[ADDR('C')].val;
dly_tsk(20);
}
}
*/

Formats disponibles : Unified diff