Projet

Général

Profil

« Précédent | Suivant » 

Révision 45

Ajouté par sevilain1 il y a plus de 6 ans

Ajout du programme d'asservissement de la voiture

Voir les différences:

branch/vilain_sebastien/Emb_App/programme_principal_etud.c
//'I'/73/Ox49 : D?finition du nom du v?hicule. Doit d?buter par le caract?re '#' et entraine le chargement de la configuration de piste
// correspondant au nom du v?hicule si le nom se termine par '*'
void commande_tourelle(short vit_rot);
short lecture_angle();
short asserv0(short consigne);
short consigne = 900;
short erreur;
short vitesse = 120;
void main()
{
{
CanFrame requete, reponse;
ports_mcu();
lcd_init();
periph_init();
periph_nom("#AutoTest*");
periph_nom("#Test*");
can_init();
clavier_init(1);
capture_init();
sta_cyc(ID_acqui);
// sta_tsk(ID_periph_rx);
// sta_tsk(ID_periph_rx);
requete.data.id = 'V';
requete.data.rtr = 0;
requete.data.val=30;
snd_dtq(CanTx, requete.msg);
while(1)
{
{
erreur = asserv0(consigne);
commande_tourelle(erreur);
LED_J=1;
dly_tsk(100);
LED_J=0;
......
LED_V=!LED_V;
}
void commande_tourelle(short vit_rot)
{
CanFrame comm;
comm.data.id = 'T';
comm.data.rtr = 0;
comm.data.val = vit_rot;
snd_dtq(CanTx, comm.msg);
}
short lecture_angle()
{
CanFrame requete, reponse;
requete.data.id = 'R';
requete.data.rtr = 1;
snd_dtq(CanTx, requete.msg);
rcv_dtq(CanRx, &reponse.msg);
return (reponse.data.val);
}
short asserv0(short consigne)
{
int K = 2;
short erreur;
erreur = K*(consigne-lecture_angle());
return erreur;
}
branch/vilain_sebastien/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/11/28 17:30:53
//
////////////////////////////////////////////////////////////////////////////////

Formats disponibles : Unified diff