Projet

Général

Profil

« Précédent | Suivant » 

Révision 330

Ajouté par crzemeta il y a plus de 6 ans

Detection des capteurs sur periph C : ok

Voir les différences:

branch/zemeta/Emb_App/programme_principal_etud.c
// correspondant au nom du v?hicule si le nom se termine par '*'
CanFrame comm,comm2,comm3;
unsigned short k=1,k2=1, angle_reel, error,error2,d_reel,D=714, d_max = 2000 ; // D = 500 pour piste verte , D = 714 pour piste verte
unsigned short consigne_tour = 450 , vitesse = 35 ; // V = 30 pour piste verte , V = 38 pour piste bleu
CanFrame requete,requete3 ;
unsigned short consigne_tour = 450 , vitesse = 10, capt_detecte ; // V = 30 pour piste verte , V = 38 pour piste bleu
CanFrame requete,requete3,requete4 ;
char gap = 0;
......
sta_tsk(ID_periph_rx);
//sta_cyc(ID_acqui);
//sta_tsk(id_trou);
sta_tsk(id_capt);
sta_tsk(id_angle);
sta_tsk(id_ass_t);
sta_tsk(id_roue);
......
requete.data.id = 'R' ; // variable requete sert a envoyter une requete.
requete.data.rtr = 1 ;
snd_dtq(CanTx, requete.msg);
dly_tsk(10) ;
angle_reel = periph[ADDR('R')].val;
dly_tsk(5) ;
angle_reel = periph[ADDR('R')].val;
dly_tsk(10) ;
}
}
......
comm.data.rtr = 0 ;
comm.data.val = vitesse ;
snd_dtq(CanTx, comm.msg) ;
dly_tsk(10);
dly_tsk(5);
}
}
......
comm.data.rtr = 0 ;
comm.data.val = k*error ;
snd_dtq(CanTx, comm.msg) ;
dly_tsk(10) ;
dly_tsk(5) ;
}
}
......
comm2.data.rtr = 0 ;
comm2.data.val = -k2*error2 ;
snd_dtq(CanTx, comm2.msg) ;
dly_tsk(5) ;
}
dly_tsk(10) ;
}
......
}
void trou()
{
while(1)
......
comm2.data.id = 'D' ;
comm2.data.rtr = 0 ;
comm2.data.val = 0 ;
snd_dtq(CanTx, comm2.msg) ;
snd_dtq(CanTx, comm2.msg) ;
dly_tsk(5) ;
}
dly_tsk(10) ;
}
}
void capteur()
{
while (1)
{
requete.data.id = 'C' ;
requete.data.rtr = 1 ;
snd_dtq(CanTx, requete.msg);
dly_tsk(5) ;
capt_detecte = periph[ADDR('C')].val;
}
}
branch/zemeta/Emb_App/conf_noyau.cfg
};
task[]{
entry_address = capteur();
name = id_capt;
stack_size = 256;
stack_section = stack;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;
initial_pattern = 0x0000;

Formats disponibles : Unified diff