Projet

Général

Profil

« Précédent | Suivant » 

Révision 448

Ajouté par codiagne il y a plus de 6 ans

commit derniere seance

Voir les différences:

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