Projet

Général

Profil

« Précédent | Suivant » 

Révision 281

Ajouté par khmbaye il y a plus de 6 ans

Asservissement piste bleue presque achevée
Trouver comment passer devant les trous

Voir les différences:

branch/mbaye/Emb_App/programme_principal_etud.c
#include "carte_m32.h"
#include <math.h>
//unsigned int com; //commande
//int pos_tourelle;
//int vitesse;
int pos;
int dis;
UINT flag;
//int a;
//int b;
int capt;
FLGPTN flag;
// Potentiometre: lire les registres ad00 et ad01, les valeurs sont sur 10 bits.
......
// dly_tsk(100);
comm.data.id='T'; comm.data.rtr=0;
comm.data.val=450-pos;
comm.data.val=1.5*(595-pos);
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
}
......
//dly_tsk(100);
comm.data.id='D'; comm.data.rtr=0;
comm.data.val=-(450-dis);
comm.data.val=-1.5*(595-dis);
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
}
}
void vitesse_roue()
{
CanFrame comm;
dly_tsk(3000);
comm.data.id='V'; comm.data.rtr=0;
comm.data.val=15;
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
CanFrame comm;
dly_tsk(3000);
comm.data.id='V'; comm.data.rtr=0;
comm.data.val=10;
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
}
void info_capt()
{
CanFrame req;
req.data.id='C'; req.data.rtr=1;
periph[ADDR('C')].ev= 0x01;
snd_dtq (CanTx,req.msg);
wai_flg(event, (FLGPTN) 0x0007, TWF_ANDW, &flag);
capt = periph[ADDR('C')].val;
dly_tsk(100);
clr_flg(event,~flag);
}
void main()
{
......
sta_tsk(ID_asserv_T);
sta_tsk(ID_dist_T);
sta_tsk(ID_vitesse_roue);
sta_tsk(ID_info_capt);
while(1)
{
branch/mbaye/Emb_App/conf_noyau.cfg
exinf = 0x0;
};
task[]{
entry_address = info_capt();
name = ID_info_capt;
stack_size = 512;
stack_section = stack;
priority = 10;
initial_start = ON;
exinf = 0x0;
};
task[]{
entry_address = periph_tx();
name = ID_periph_tx;
stack_size = 256;

Formats disponibles : Unified diff