Projet

Général

Profil

« Précédent | Suivant » 

Révision 52

Ajouté par tibacher il y a plus de 6 ans

Régulation mise dans une tâche

Voir les différences:

branch/bacher/Emb_App/programme_principal_etud.c
int retour=0; //contient la valeur retourner par le p?riph
int k=1; //contient le gain du correcteur
int valeur=0; //contient la valeur ? envoyer
void asserv0()
{
CanFrame comm;
CanFrame demande;
CanFrame reponse;
while(1){
demande.data.id='R';
demande.data.rtr=1;
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
retour=reponse.data.val; // contient la valeur de retour du simulateur.
comm.data.id='T';
comm.data.rtr=0;
comm.data.val=valeur;
snd_dtq (CanTx,comm.msg); //on envoie la modification ? effectuer
if(retour!=cons) valeur=k*(cons-retour);
}
}
void main()
{
CanFrame comm;
CanFrame demande;
CanFrame reponse;
ports_mcu();
lcd_init();
......
sta_cyc(ID_acqui);
// sta_tsk(ID_periph_rx);
sta_tsk(ID_asserv0);
while(1)
{
//LED_J=1;
//dly_tsk(100);
//LED_J=0;
//dly_tsk(100);
demande.data.id='R';
demande.data.rtr=1;
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
retour=reponse.data.val; // contient la valeur de retour du simulateur.
comm.data.id='T';
comm.data.rtr=0;
comm.data.val=valeur;
snd_dtq (CanTx,comm.msg); //on envoie la modification ? effectuer
if(retour!=cons) valeur=k*(cons-retour);
}
}
branch/bacher/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/03 14:45:59
//
////////////////////////////////////////////////////////////////////////////////
......
// 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 = asserv0();
name = ID_asserv0;
stack_size = 256;
stack_section = stack;
priority = 1;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;

Formats disponibles : Unified diff