Projet

Général

Profil

« Précédent | Suivant » 

Révision 208

Ajouté par anfichot1 il y a plus de 6 ans

fin séance2
asservissement tourelle fini,
fonction calcul distance_telemetre quasi finie

Voir les différences:

branch/fichot/Emb_App/programme_principal_etud.c
// correspondant au nom du v?hicule si le nom se termine par '*'
int k=2;
int vitesse = 50;
int k=4;
int vitesse = 40;
......
snd_dtq (CanTx,vit_roue.msg);
}*/
void rot_tourelle()
void asserv_tourelle()
{
CanFrame comm;
comm.data.id = 'T';
short angle;
CanFrame req, reponse;
comm.data.id = 'T';
comm.data.rtr = 0;
comm.data.val = 120;
snd_dtq(CanTx, comm.msg);
}
short pos_tourelle(){
CanFrame req, reponse;
short angle;
snd_dtq(CanTx, comm.msg);
while(1){
req.data.id = 'R';
req.data.rtr = 1;
snd_dtq(CanTx, req.msg);
rcv_dtq(CanRx, &reponse.msg);
angle = reponse.data.val;
return angle;
}
void asserv(VP_INT stacd){
CanFrame comm;
while(1){
comm.data.id = 'T';
angle = reponse.data.val;
comm.data.id = 'T';
comm.data.rtr = 0;
comm.data.val = k*(450 - position_tourelle());
comm.data.val = k*(450 - angle);
snd_dtq(CanTx, comm.msg);
}
}
}
short distance_telemetre(void){
/*short distance_telemetre(void){
CanFrame requete, reponse;
short distance;
......
snd_dtq(CanTx, requete.msg);
rcv_dtq(CanRx, &reponse.msg);
if(reponse.data.id != 'U' )
{
rcv_dtq(CanRx, &reponse.msg);
}
distance = reponse.data.val;
return distance;
}
return distance;
}*/
void angle_roue(short angle){
/*void asserv_roue(){
short dist;
const distance_au_centre = 719;
// avoir l'angle des roues
CanFrame comm;
comm.data.id = 'D';
comm.data.rtr = 0;
comm.data.val = 0;
snd_dtq(CanTx, comm.msg);
}
snd_dtq(CanTx, comm.msg);
// rester au centre
dist = distance_telemetre();
//if(dist > distance_au_centre)
}*/
void main()
{
ports_mcu();
......
can_init();
clavier_init(1);
capture_init();
sta_tsk(ID_asserv_tourelle);
//asserv_roue();
//demarrer();
rot_tourelle();
pos_tourelle();
asserv();
distance_telemetre();
while(1){
}
branch/fichot/Emb_App/conf_noyau.cfg
//
// kernel.cfg : building file for MR308 Ver.4.00
//
// Generated by M3T-MR308 GUI Configurator at 2013/01/08 15:28:33
// Generated by M3T-MR308 GUI Configurator at 2018/12/11 17:01:15
//
////////////////////////////////////////////////////////////////////////////////
// system definition
system{
stack_size = 256;
priority = 8;
priority = 9;
system_IPL = 4;
message_pri = 1;
timeout = YES;
......
// max definition
maxdefine{
max_task = 3;
max_task = 4;
max_flag = 3;
max_dtq = 2;
max_cyh = 1;
......
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = asserv_tourelle();
name = ID_asserv_tourelle;
stack_size = 256;
stack_section = stack;
priority = 9;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;

Formats disponibles : Unified diff