Révision 412
Ajouté par vidaval il y a plus de 6 ans
branch/daval/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0026
|
||
RESET=ff004e
|
branch/daval/Emb_App/programme_principal_etud.c | ||
---|---|---|
// Gestion piste et feu
|
||
|
||
int mode_course;
|
||
int feu_vert;
|
||
char feu_vert;
|
||
|
||
void mode2course(){
|
||
void mode2course(){ //Recuperation de l'info sur la couleur du feu et de la piste sur laquelle on est
|
||
CanFrame requete;
|
||
UINT flag;
|
||
while(1)
|
||
... | ... | |
snd_dtq(CanTx, requete.msg);
|
||
wai_flg(ev_periph, 0x04, TWF_ANDW, &flag);
|
||
mode_course = periph[ADDR('M')].val;
|
||
feu_vert = mode_course && 0x8000;
|
||
feu_vert = (mode_course>>15)&& 0x01;
|
||
num_piste = mode_course;
|
||
dly_tsk(10);
|
||
switch(num_piste)
|
||
{
|
||
case 0x01 :
|
||
lcd_init();
|
||
lcd_com(0x80);
|
||
lcd_str("vert");
|
||
break;
|
||
case 0x02 :
|
||
lcd_init();
|
||
lcd_com(0x80);
|
||
lcd_str("bleu");
|
||
break;
|
||
case 0x01 :
|
||
lcd_init();
|
||
lcd_com(0x80);
|
||
lcd_str("rouge");
|
||
break;
|
||
case 0x01 :
|
||
lcd_init();
|
||
lcd_com(0x80);
|
||
lcd_str("noir");
|
||
break;
|
||
}
|
||
dly_tsk(20);
|
||
}
|
||
}
|
||
|
||
... | ... | |
angle_corrige=k*(consigne-angle_mesure);
|
||
commande.data.val=angle_corrige;
|
||
snd_dtq (CanTx,commande.msg); //Envoi modification
|
||
dly_tsk(15);
|
||
dly_tsk(10);
|
||
}
|
||
}
|
||
CanFrame vitesse; //Sotie de la tache avance car utilis?e dans la tache de l'asservissment de cap
|
||
... | ... | |
{
|
||
|
||
dly_tsk(2000);
|
||
if(feu_vert)
|
||
{
|
||
//if(feu_vert==1)
|
||
//{
|
||
|
||
|
||
vitesse.data.id='V'; //Envoi d'une commande en vitesse
|
||
... | ... | |
{
|
||
switch(num_piste)
|
||
{
|
||
case 1: vitesse_rapide= 70;
|
||
vitesse_lente=40;
|
||
case 1: vitesse_rapide= 65;
|
||
vitesse_lente=35;
|
||
break;
|
||
|
||
case 2: vitesse_rapide= 40;
|
||
... | ... | |
|
||
}
|
||
}*/
|
||
if(Bp_G==1)
|
||
while(Bp_G==1)
|
||
{
|
||
vitesse.data.val=0;
|
||
snd_dtq (CanTx,vitesse.msg);
|
||
}
|
||
|
||
dly_tsk(10);
|
||
dly_tsk(15);
|
||
}
|
||
}
|
||
dly_tsk(10);
|
||
//}
|
||
}
|
||
|
||
void distance_bord()
|
||
... | ... | |
cap=0;
|
||
snd_dtq (CanTx,commande.msg);
|
||
}
|
||
dly_tsk(5);
|
||
dly_tsk(10);
|
||
}
|
||
}
|
||
|
||
... | ... | |
capteur = periph[ADDR('C')].val;
|
||
couleur = capteur >> 8; //On decale pour avoir les 8 bits de poids forts : info sur la couleur
|
||
numero = capteur ;
|
||
dly_tsk(10);
|
||
switch(capteur)
|
||
{
|
||
case 0x5601 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("vert");
|
||
break;
|
||
case 0x4a01 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("jaune");
|
||
break;
|
||
case 0x5602 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("vert");
|
||
break;
|
||
case 0x5202 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("rouge");
|
||
break;
|
||
case 0x5603 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("vert");
|
||
break;
|
||
case 0x4203 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("bleu");
|
||
break;
|
||
case 0x5604 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("vert");
|
||
break;
|
||
case 0x4304 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("cyan");
|
||
break;
|
||
case 0x5605 :
|
||
lcd_init();
|
||
lcd_com(0xC0);
|
||
lcd_str("vert");
|
||
break;
|
||
}
|
||
dly_tsk(15);
|
||
}
|
||
}
|
||
|
||
... | ... | |
vrcv_dtq(QdmTouche,&code_touche);
|
||
|
||
}
|
||
dly_tsk(30);
|
||
dly_tsk(25);
|
||
}
|
||
|
||
void main()
|
branch/daval/Emb_App/conf_noyau.cfg | ||
---|---|---|
name = ID_periph_rx;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 2;
|
||
priority = 4;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
name = ID_asservissement_tourelle;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 3;
|
||
priority = 5;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
name = ID_avance;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 4;
|
||
priority = 2;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
name = ID_distance_bord;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 6;
|
||
priority = 7;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
name = ID_asserv_cap;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 5;
|
||
priority = 6;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
name = ID_detection_capteur;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 7;
|
||
priority = 8;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
name = ID_mode2course;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 8;
|
||
priority = 9;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
name = ID_clavier;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 9;
|
||
priority = 10;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
Formats disponibles : Unified diff
Bouton poussoir fonctionnel (un peu trop de message) lcd ok affiche les capteur et la piste mais petit problème de temps réel