Révision 52
Ajouté par tibacher il y a plus de 6 ans
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
Régulation mise dans une tâche