Révision 448
Ajouté par codiagne il y a plus de 6 ans
branch/diagne/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0014
|
||
RESET=ff0046
|
branch/diagne/Emb_App/programme_principal_etud.c | ||
---|---|---|
short new_distance;
|
||
short capt;
|
||
short piste;
|
||
short feu;
|
||
|
||
|
||
void Asserv0(){
|
||
... | ... | |
}
|
||
}
|
||
|
||
void num_piste() //permet de savoir sur quel piste on est
|
||
void num_piste() //permet de savoir sur quel piste on est et de gerer les feux tricolores
|
||
{
|
||
CanFrame req;
|
||
UINT flag;
|
||
... | ... | |
snd_dtq(CanTx,req.msg);
|
||
wai_flg(ev_periph, 0x04, TWF_ANDW,&flag);
|
||
piste=(periph[ADDR('M')].val)&0x00ff;
|
||
feu=(periph[ADDR('M')].val)&0x8000;
|
||
switch(piste)
|
||
{
|
||
case 0x0004: lcd_str("Piste Noire");
|
||
break;
|
||
case 0x0003: lcd_str("Piste Rouge");
|
||
break;
|
||
case 0x0002: lcd_str("Piste Bleue");
|
||
break;
|
||
case 0x0001: lcd_str("Piste Verte\n");
|
||
break;
|
||
}
|
||
|
||
|
||
dly_tsk(20);
|
||
}
|
||
}
|
||
|
||
//demmarge selon couleur feu
|
||
void demarrer(){
|
||
while(1){
|
||
if(feu==0x8000){
|
||
sta_tsk(ID_Avancer);
|
||
}
|
||
dly_tsk(50);
|
||
}
|
||
}
|
||
|
||
|
||
void regulation_roue(){
|
||
... | ... | |
else
|
||
{
|
||
if (distance >1000)//On compare la distance mesur?e par le telemtetre
|
||
new_distance=680;
|
||
new_distance=710;
|
||
else new_distance=distance;
|
||
comm.data.val=1*(new_distance-680); // On la garde bien au milieu de la piste
|
||
comm.data.val=1*(new_distance-710); // On la garde bien au milieu de la piste
|
||
snd_dtq(CanTx,comm.msg);
|
||
}
|
||
dly_tsk(10);
|
||
... | ... | |
}
|
||
}
|
||
|
||
|
||
|
||
void Avancer(){
|
||
dly_tsk(6000);
|
||
while(1)
|
||
... | ... | |
req.data.id='V';
|
||
req.data.rtr=0;
|
||
|
||
//Arr?t force lorsque le bouton poussoir est activ?
|
||
// if(Bp_G==1){
|
||
// req.data.val=0;
|
||
// snd_dtq(CanTx, req.msg);
|
||
// }
|
||
//Arret force lorsque le feu n'est pas vert
|
||
// if (feu==0){
|
||
// req.data.val=0;
|
||
// snd_dtq(CanTx, req.msg);
|
||
// }
|
||
|
||
switch (piste)
|
||
|
||
{
|
||
... | ... | |
break;
|
||
|
||
case 0x002:
|
||
req.data.val=19;
|
||
snd_dtq(CanTx,req.msg);
|
||
req.data.val=19;
|
||
snd_dtq(CanTx,req.msg);
|
||
break;
|
||
|
||
case 0x0003:
|
||
... | ... | |
|
||
}
|
||
}
|
||
//}
|
||
|
||
void clavier()
|
||
{
|
||
char sequence[10]={0};
|
||
short code_touche;
|
||
int index = 1;
|
||
while(1)
|
||
{
|
||
vrcv_dtq(QdmTouche, &code_touche);
|
||
lcd_putc(code_touche);
|
||
while(code_touche != '*')
|
||
{
|
||
if(code_touche == '#')
|
||
{
|
||
sequence[0] = code_touche;
|
||
}
|
||
else
|
||
{
|
||
sequence[index] = code_touche;
|
||
index++;
|
||
}
|
||
vrcv_dtq(QdmTouche, &code_touche);
|
||
lcd_putc(code_touche);
|
||
}
|
||
sequence[index] = '*';
|
||
//consigne_tour = decode_int(sequence);
|
||
index=1;
|
||
dly_tsk(200);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
void main()
|
||
... | ... | |
sta_tsk(ID_roue);
|
||
sta_tsk(ID_capteur);
|
||
sta_tsk(ID_piste);
|
||
sta_tsk(ID_demarrer);
|
||
|
||
// sta_tsk(ID_roue_rouge);
|
||
|
branch/diagne/Emb_App/conf_noyau.cfg | ||
---|---|---|
};
|
||
|
||
task[]{
|
||
entry_address = demarrer();
|
||
name = ID_demarrer;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 7;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = Avancer();
|
||
name = ID_Avancer;
|
||
stack_size = 256;
|
Formats disponibles : Unified diff
commit derniere seance