Révision 231
Ajouté par melepogam il y a plus de 6 ans
branch/lepogam/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0030
|
||
RESET=ff0034
|
branch/lepogam/Emb_App/programme_principal_etud.c | ||
---|---|---|
unsigned int distance=0;
|
||
unsigned int vitesse=0;
|
||
unsigned int couleur=0; // vert -> ligne droie
|
||
unsigned int npiste=0;
|
||
unsigned int distance_ref=700;
|
||
unsigned int consigne=450;
|
||
unsigned int consigne_vitesse=34;
|
||
unsigned int vitesse_min=24;
|
||
unsigned int valeur_t=0;
|
||
unsigned int valeur_r=0;
|
||
int go=0;
|
||
int k1=2;
|
||
int k2=1;
|
||
|
||
|
||
void piste(){
|
||
//'M'/77/0x7D?: Mode de course :
|
||
// Bit 15?: Etat feu tricolore ( 1 -> Vert, 0 -> Orange ou Rouge),
|
||
// Bits 14-8?: 1 Attente, 2 course, 3 essais libres)
|
||
// Bits 7-0?: numero de la piste
|
||
CanFrame comm;
|
||
CanFrame demande;
|
||
CanFrame reponse;
|
||
while(1){
|
||
|
||
|
||
demande.data.id='M';
|
||
demande.data.rtr=1;
|
||
|
||
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
|
||
dly_tsk(500);
|
||
npiste=periph[ADDR('M')].val<<8; // contient la valeur de retour du simulateur.
|
||
|
||
switch(npiste){
|
||
|
||
case(256) : //verte
|
||
consigne_vitesse =60;
|
||
vitesse_min =35;
|
||
distance_ref = 880;
|
||
go=1;
|
||
break;
|
||
|
||
case(512) : //bleue
|
||
consigne_vitesse =40;
|
||
vitesse_min =22;
|
||
distance_ref = 700;
|
||
go=1;
|
||
break;
|
||
|
||
case(768) : //rouge
|
||
consigne_vitesse =34;
|
||
vitesse_min =24;
|
||
distance_ref = 700;
|
||
go=1;
|
||
break;
|
||
|
||
|
||
case(1024) : //noir
|
||
consigne_vitesse =25;
|
||
vitesse_min =25;
|
||
distance_ref = 700;
|
||
go=1;
|
||
break;
|
||
}
|
||
|
||
ext_tsk();
|
||
}
|
||
}
|
||
void asserv_tourelle(){
|
||
|
||
|
||
... | ... | |
sta_cyc(ID_acqui);
|
||
sta_tsk(ID_periph_rx);
|
||
|
||
sta_tsk(ID_piste);
|
||
sta_tsk(ID_asserv_tourelle);
|
||
sta_tsk(ID_asserv_roue);
|
||
sta_cyc(ID_asserv1);
|
||
sta_cyc(ID_asserv2);
|
||
|
||
|
||
dly_tsk(600); // attente mise en place de la tourelle
|
||
sta_tsk(ID_asserv_vitesse);
|
||
sta_cyc(ID_asserv3);
|
branch/lepogam/Emb_App/conf_noyau.cfg | ||
---|---|---|
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = piste();
|
||
name = ID_piste;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 3;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = asserv_tourelle();
|
||
name = ID_asserv_tourelle;
|
||
stack_size = 256;
|
Formats disponibles : Unified diff
ajout switch pour parametre en fonction de la piste