Révision 466
Ajouté par nacao il y a plus de 6 ans
branch/nan_cao/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0012
|
||
RESET=ff014e
|
branch/nan_cao/Emb_App/programme_principal_etud.c | ||
---|---|---|
short vitesse;
|
||
short vitourelle;
|
||
short num_piste;
|
||
short col_zone;
|
||
short m;
|
||
short cap;
|
||
short numcap;
|
||
short couleurcap;
|
||
short mod;
|
||
short angle;
|
||
short notour;
|
||
|
||
CanFrame comm_ang;
|
||
CanFrame comm_vitesse;
|
||
... | ... | |
comm_ang.data.id='D'; //angle de roue
|
||
comm_ang.data.rtr=0;
|
||
comm_ang.data.val=angle;
|
||
if(distance < 1100) angle=-(700-distance);
|
||
if(distance < 2000) angle=-(700-distance);
|
||
else comm_ang.data.val=0;
|
||
snd_dtq(CanTx,comm_ang.msg);
|
||
dly_tsk(20);
|
||
... | ... | |
wai_flg(ev_periph, 0x04, TWF_ANDW,&flag);
|
||
|
||
cap=periph[ADDR('C')].val; // contient la valeur de retour du simulateur.
|
||
|
||
col_zone= cap&0xFF00>>8;
|
||
|
||
req.data.id='M'; //mode de course
|
||
req.data.rtr=1;
|
||
periph[ADDR('M')].ev=0x05;
|
||
... | ... | |
wai_flg(ev_periph, 0x05, TWF_ANDW,&flag);
|
||
|
||
mod=periph[ADDR('M')].val; // contient la valeur de retour du simulateur. numero de piste, tricouleur et mode
|
||
num_piste= mod&0x000F;
|
||
num_piste= mod&0x00FF;
|
||
|
||
|
||
}
|
||
|
||
... | ... | |
}
|
||
*/
|
||
|
||
|
||
/* 6 seance
|
||
void vit(){
|
||
|
||
while(1)
|
||
... | ... | |
dly_tsk(500);
|
||
comm_vitesse.data.id='V'; //Vitesse de la tour
|
||
comm_vitesse.data.rtr=0;
|
||
comm_vitesse.data.val=vitesse;
|
||
|
||
if(Bp_G==1 || notour==4) comm_vitesse.data.val=0;
|
||
else comm_vitesse.data.val=vitesse;
|
||
snd_dtq(CanTx,comm_vitesse.msg);
|
||
}
|
||
}
|
||
*/
|
||
|
||
void vit(){
|
||
|
||
void tour(){
|
||
CanFrame req;
|
||
|
||
while(1)
|
||
{
|
||
dly_tsk(500);
|
||
comm_vitesse.data.id='V'; //Vitesse de la tour
|
||
comm_vitesse.data.rtr=0;
|
||
|
||
if(Bp_G==1) comm_vitesse.data.val=0;
|
||
else comm_vitesse.data.val=vitesse;
|
||
snd_dtq(CanTx,comm_vitesse.msg);
|
||
comm_vitesse.data.id='E'; //nombre de tour
|
||
comm_vitesse.data.rtr=1;
|
||
|
||
snd_dtq(CanTx,req.msg);
|
||
notour=periph[ADDR('E')].val;
|
||
dly_tsk(20);
|
||
}
|
||
}
|
||
|
||
int act_time;
|
||
|
||
void timez(){
|
||
CanFrame req;
|
||
char afficher[20];
|
||
|
||
while(1)
|
||
{
|
||
|
||
comm_vitesse.data.id='H'; //nombre de tour
|
||
comm_vitesse.data.rtr=1;
|
||
|
||
snd_dtq(CanTx,req.msg);
|
||
act_time=periph[ADDR('H')].val;
|
||
|
||
sprintf(afficher, "%d", act_time);
|
||
lcd_str(afficher);
|
||
dly_tsk(20);
|
||
}
|
||
}
|
||
|
||
void affichage()
|
||
{
|
||
char str1[20];
|
||
char str2[20];
|
||
|
||
int flage=1;
|
||
|
||
while(1){
|
||
dly_tsk(10);
|
||
lcd_putc('mod');
|
||
dly_tsk(50);
|
||
if(num_piste==1 && flage)
|
||
{
|
||
lcd_str("piste vert");
|
||
flage=0;
|
||
}
|
||
if(num_piste==2)
|
||
lcd_str("piste bleu");
|
||
if(num_piste==3)
|
||
lcd_str("piste rough");
|
||
if(num_piste==4)
|
||
lcd_str("piste noire");
|
||
|
||
|
||
// if(col_zone==1)
|
||
// lcd_str("zone vert");
|
||
}
|
||
}
|
||
|
||
|
||
... | ... | |
periph_init();
|
||
periph_nom("#nan*");
|
||
|
||
lcd_putc(1);
|
||
|
||
can_init();
|
||
clavier_init(1);
|
||
capture_init();
|
||
|
||
sta_tsk(ID_affichage);
|
||
|
||
sta_tsk(ID_ang_roue);
|
||
sta_tsk(ID_ang_tourelle);
|
||
sta_tsk(ID_vitesse);
|
||
sta_tsk(ID_capteur);
|
||
sta_tsk(ID_affichage);
|
||
sta_tsk(ID_capteur);
|
||
sta_tsk(ID_time);
|
||
sta_tsk(ID_tour);
|
||
sta_cyc(ID_acqui);
|
||
sta_tsk(ID_periph_rx);
|
||
|
||
... | ... | |
|
||
switch(num_piste){
|
||
case 1:
|
||
vitesse=30;
|
||
if(distance < 850) vitesse=40;
|
||
|
||
else vitesse=1;
|
||
break;
|
||
|
||
break;
|
||
case 2:
|
||
vitesse=30;
|
||
if(distance < 850) vitesse=35;
|
||
else vitesse=1;
|
||
break;
|
||
|
||
case 3:
|
||
if(cap==0x7601) {
|
||
vitesse=60;
|
||
}
|
||
|
||
if (cap==0x7601) vitesse=60;
|
||
else if (cap==0x4203) vitesse=5;
|
||
else if (cap==0x5202) vitesse=40;
|
||
else if (cap==0x5603) vitesse=60;
|
||
else if (cap==0x7610) vitesse=0;
|
||
else if (cap==0x7602) vitesse=5;
|
||
else if (cap==0x7602) vitesse=10;
|
||
else if (cap==0x5604) vitesse=5;
|
||
else vitesse=30;
|
||
else if (distance < 850)vitesse=35;
|
||
else vitesse=1;
|
||
break;
|
||
}
|
||
|
||
... | ... | |
}
|
||
|
||
|
||
|
branch/nan_cao/Emb_App/conf_noyau.cfg | ||
---|---|---|
name = ID_vitesse;
|
||
stack_size = 512;
|
||
stack_section = stack;
|
||
priority = 7;
|
||
priority = 2;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
... | ... | |
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
task[]{
|
||
entry_address = affichage();
|
||
name = ID_affichage;
|
||
stack_size = 512;
|
||
stack_section = stack;
|
||
priority = 7;
|
||
priority = 4;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
task[]{
|
||
entry_address = tour();
|
||
name = ID_tour;
|
||
stack_size = 512;
|
||
stack_section = stack;
|
||
priority = 6;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = timez();
|
||
name = ID_time;
|
||
stack_size = 512;
|
||
stack_section = stack;
|
||
priority = 6;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = periph_tx();
|
||
name = ID_periph_tx;
|
||
stack_size = 256;
|
branch/nan_cao/bsp/lcd.c | ||
---|---|---|
{
|
||
int i;
|
||
|
||
for (i=0;i<n*60;i++);
|
||
; for (i=0;i<n*60;i++);
|
||
}
|
Formats disponibles : Unified diff
améliorer la vitesse pour les trois pistes,
afficher le circuit actif