Révision 271
Ajouté par aueuphrasi il y a plus de 6 ans
branch/euphrasie_auguste/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[RESET_RELEASE]
|
||
ENABLE=0
|
||
[CPU_SELECT]
|
||
DEVICE=M30879FL
|
||
DEVICE=M30865FJ
|
||
EMUSEL=0
|
||
MCU_GROUP=M32C__87 Group
|
||
MCU_GROUP=M32C__86 Group
|
||
[POWER_SUPPLY]
|
||
VOLTAGE_5_0=1
|
||
VOLTAGE_3_3=0
|
||
[FW_LOCATE]
|
||
FWADDRESS=f000
|
||
FWADDRESS=f800
|
||
RAMADDRESS=04
|
||
[WDT]
|
||
WDT_USE=0
|
branch/euphrasie_auguste/Emb_App/programme_principal_etud.c | ||
---|---|---|
void assser_tourelle(void);
|
||
void asser_roue_vitesse(void);
|
||
void decode_int(void);
|
||
void capteur(void);
|
||
|
||
short i;
|
||
short touche;
|
||
... | ... | |
float dist_mur_droit;
|
||
|
||
float k_V = 1.0;
|
||
short commande_V_max = 40;
|
||
short commande_V_max = 100;
|
||
short commande_V;
|
||
|
||
unsigned short num_piste;
|
||
unsigned short num_piste;
|
||
unsigned short cap_touch;
|
||
|
||
void main()
|
||
{
|
||
... | ... | |
switch(num_piste)
|
||
{
|
||
case 1:
|
||
terrain_vert();
|
||
break;
|
||
terrain_vert(); break;
|
||
case 2:
|
||
terrain_bleu();
|
||
break;
|
||
terrain_bleu(); break;
|
||
case 3:
|
||
terrain_rouge();
|
||
break;
|
||
terrain_rouge(); break;
|
||
case 4:
|
||
terrain_noir();
|
||
break;
|
||
terrain_noir(); break;
|
||
case 5:
|
||
terrain_vert();
|
||
break;
|
||
terrain_vert(); break;
|
||
case 6:
|
||
terrain_bleu();
|
||
break;
|
||
terrain_bleu(); break;
|
||
case 7:
|
||
terrain_rouge();
|
||
break;
|
||
terrain_rouge(); break;
|
||
case 8:
|
||
terrain_noir();
|
||
break;
|
||
terrain_noir(); break;
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
|
||
void terrain_vert(void){
|
||
while((num_piste == 1) || (num_piste == 5)){
|
||
for(i=0;i<50;i++){ assser_tourelle(); dly_tsk(10);}
|
||
commande_V_max = 0;
|
||
for(i=0;i<100;i++){ assser_tourelle(); dly_tsk(10);}
|
||
periph_command('T', 0);
|
||
while((periph_requete('M') >> 15) == 0 ) dly_tsk(50); // attente feux vert
|
||
periph_command('D', 0);
|
||
periph_command('V', 60);
|
||
dly_tsk(250);
|
||
while((num_piste == 1) || (num_piste == 5)){
|
||
|
||
assser_tourelle();
|
||
asser_roue_vitesse();
|
||
capteur();
|
||
|
||
|
||
switch(cap_touch)
|
||
{
|
||
case 86: //ligne droite
|
||
k_D = 1.0;
|
||
commande_V_max = 60;
|
||
distance_centre = 700; break;
|
||
case 74 :
|
||
case 82 :
|
||
case 66 :
|
||
case 67 : //virage
|
||
k_D = 1.25;
|
||
commande_V_max = 40;
|
||
distance_centre = 800; break;
|
||
default :
|
||
k_D = 1.25;
|
||
commande_V_max = 40;
|
||
distance_centre = 650; break;
|
||
}
|
||
num_piste = (periph_requete('M') << 8) >> 8;
|
||
dly_tsk(50);
|
||
}
|
||
... | ... | |
|
||
void terrain_bleu(void){
|
||
while((num_piste == 2) || (num_piste == 6)){
|
||
for(i=0;i<50;i++){ assser_tourelle(); dly_tsk(10);}
|
||
for(i=0;i<100;i++){ assser_tourelle(); dly_tsk(10);}
|
||
periph_command('T', 0);
|
||
while((periph_requete('M') >> 15) == 0 ) dly_tsk(50); // attente feux vert
|
||
periph_command('D', 0);
|
||
periph_command('V', 60);
|
||
dly_tsk(250);
|
||
while((num_piste == 2) || (num_piste == 6)){
|
||
assser_tourelle();
|
||
asser_roue_vitesse();
|
||
capteur();
|
||
|
||
|
||
|
||
|
||
|
||
switch(cap_touch)
|
||
{
|
||
case 86: //ligne droite
|
||
k_D = 1.3;
|
||
commande_V_max = 50;
|
||
distance_centre = 500; break;
|
||
case 74 :
|
||
case 82 :
|
||
case 66 :
|
||
case 67 : //virage
|
||
k_D = 1.4;
|
||
commande_V_max = 25;
|
||
distance_centre = 500; break;
|
||
default :
|
||
k_D = 1.25;
|
||
commande_V_max = 50;
|
||
distance_centre = 500; break;
|
||
}
|
||
num_piste = (periph_requete('M') << 8) >> 8;
|
||
dly_tsk(50);
|
||
dly_tsk(40);
|
||
}
|
||
}
|
||
}
|
||
|
||
void terrain_rouge(void){
|
||
while((num_piste == 3) || (num_piste == 7)){
|
||
for(i=0;i<50;i++){ assser_tourelle(); dly_tsk(10);}
|
||
for(i=0;i<100;i++){ assser_tourelle(); dly_tsk(10);}
|
||
periph_command('T', 0);
|
||
while((periph_requete('M') >> 15) == 0 ) dly_tsk(50); // attente feux vert
|
||
while((num_piste == 3) || (num_piste == 7)){
|
||
assser_tourelle();
|
||
asser_roue_vitesse();
|
||
capteur();
|
||
|
||
|
||
|
||
|
||
|
||
switch(cap_touch)
|
||
{
|
||
case 86: //ligne droite
|
||
k_D = 1.0;
|
||
commande_V_max = 100;
|
||
distance_centre = 500;
|
||
break;
|
||
case 74 :
|
||
case 82 :
|
||
case 66 :
|
||
case 67 : //virage
|
||
k_D = 1.25;
|
||
commande_V_max = 15;
|
||
distance_centre = 500;
|
||
break;
|
||
default :
|
||
k_D = 1.0;
|
||
commande_V_max = 100;
|
||
distance_centre = 500; break;
|
||
}
|
||
num_piste = (periph_requete('M') << 8) >> 8;
|
||
dly_tsk(50);
|
||
}
|
||
... | ... | |
|
||
void terrain_noir(void){
|
||
while((num_piste == 4) || (num_piste == 8)){
|
||
for(i=0;i<50;i++){ assser_tourelle(); dly_tsk(10);}
|
||
for(i=0;i<100;i++){ assser_tourelle(); dly_tsk(10);}
|
||
periph_command('T', 0);
|
||
while((periph_requete('M') >> 15) == 0 ) dly_tsk(50); // attente feux vert
|
||
while((num_piste == 4) || (num_piste == 8)){
|
||
... | ... | |
}
|
||
|
||
|
||
void capteur(void){
|
||
cap_touch = (periph_requete('C') >> 8);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
void decode_int(void){
|
||
//short i = 0;
|
||
//while(touche != '#'){
|
||
... | ... | |
|
||
if(commande_D < 0) commande_D = commande_D * (-1);
|
||
|
||
commande_V = commande_V_max - (k_V * (commande_D/10));
|
||
//commande_V = commande_V_max - (k_V * (commande_D/10));
|
||
|
||
if(commande_V < 0) commande_V = commande_V * (-1);
|
||
//if(commande_V < 0) commande_V = commande_V * (-1);
|
||
|
||
periph_command('V', commande_V);
|
||
if(Bp_D == 1){commande_V_max = 0;}
|
||
|
||
periph_command('V', commande_V_max);
|
||
}
|
||
|
||
|
||
... | ... | |
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
periph_nom("#AutoTest*");
|
||
periph_nom("#Auguste*");
|
||
can_init();
|
||
clavier_init(1);
|
||
capture_init();
|
||
... | ... | |
sta_tsk(ID_periph_rx);
|
||
}
|
||
|
||
|
||
void acqui()
|
||
{
|
||
LED_V=!LED_V;
|
||
//consigne_T = ad00;
|
||
commande_V_max = ad01/10;
|
||
//commande_V_max = ad01/10;
|
||
}
|
||
|
||
void assser_tourelle(void){
|
Formats disponibles : Unified diff
Validation terrain_vert
Validation terrain_bleu
Arret avec Bp_D