Révision 508
Ajouté par autchuemke il y a plus de 6 ans
branch/tchuem/Emb_App.tws | ||
---|---|---|
[OPEN_WORKSPACE_FILES]
|
||
"E:\tp_info6_2018_tchuem\tp_info6\bsp\periph.c"
|
||
"E:\tp_info6_2018_tchuem\tp_info6\bsp\radiocommande.c"
|
||
"E:\tp_info6_2018_tchuem\tp_info6\Emb_App\crt0mr.a30"
|
||
"E:\tp_info6_2018_tchuem\tp_info6\Emb_App\Debug\mr308.inc"
|
||
"E:\tp_info6_2018_tchuem\tp_info6\Emb_App\programme_principal_etud.c"
|
||
[WORKSPACE_FILE_STATES]
|
||
"E:\tp_info6_2018_tchuem\tp_info6\Emb_App\Debug\mr308.inc" -8 -30 1596 539 1 2
|
||
"E:\tp_info6_2018_tchuem\tp_info6\Emb_App\Debug\mr308.inc" 0 0 1596 539 0 2
|
||
"E:\tp_info6_2018_tchuem\tp_info6\Emb_App\crt0mr.a30" 100 100 1430 351 0 4
|
||
"E:\tp_info6_2018_tchuem\tp_info6\Emb_App\programme_principal_etud.c" -8 -30 1596 539 1 3
|
||
"E:\tp_info6_2018_tchuem\tp_info6\bsp\periph.c" 50 50 1430 351 0 0
|
||
"E:\tp_info6_2018_tchuem\tp_info6\bsp\radiocommande.c" 75 75 1430 351 0 1
|
||
[LOADED_PROJECTS]
|
branch/tchuem/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff001e
|
||
RESET=ff0036
|
branch/tchuem/Emb_App/programme_principal_etud.c | ||
---|---|---|
|
||
float C=600;
|
||
float Dist; // distance mesur?e par la tourelle
|
||
float Vitesse=45; //23 //40
|
||
float Vitesse=39; //23 //40
|
||
float Tourne;
|
||
float Trou;
|
||
int num_capt1[];
|
||
int num_capt2[];
|
||
int trou;
|
||
|
||
unsigned char couleur;
|
||
unsigned char feu;
|
||
int cleur;
|
||
|
||
int temps;
|
||
|
||
CanFrame demande;
|
||
CanFrame co1;
|
||
CanFrame demande,co;
|
||
|
||
|
||
|
||
|
||
//CanFrame co2;
|
||
//CanFrame co3,demande4;
|
||
|
||
... | ... | |
|
||
void main()
|
||
{
|
||
|
||
|
||
|
||
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
... | ... | |
sta_tsk(ID_asserv_tour);
|
||
sta_tsk(ID_calcul_dist);
|
||
sta_tsk(ID_asserv_roue);
|
||
|
||
sta_tsk(ID_detect_trou);
|
||
sta_tsk(ID_vit);
|
||
sta_tsk(ID_piste);
|
||
sta_tsk(ID_depart);
|
||
|
||
switch(cleur){
|
||
|
||
case 1: lcd_str("verte");
|
||
break;
|
||
case 2: lcd_str("bleue");
|
||
break;
|
||
case 3: lcd_str("rouge");
|
||
break;
|
||
case 4: lcd_str("noire");
|
||
break;
|
||
}
|
||
|
||
|
||
|
||
while(1)
|
||
{
|
||
/*
|
||
asserv_tour();
|
||
asserv_roue();
|
||
|
||
calcul_dist();
|
||
detect_trou();
|
||
vit();*/
|
||
|
||
|
||
LED_J=1;
|
||
dly_tsk(5);
|
||
LED_J=0;
|
||
... | ... | |
{
|
||
while(1)
|
||
{
|
||
CanFrame demande;
|
||
CanFrame co1;
|
||
float A;
|
||
|
||
|
||
demande.data.id='R';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx,demande.msg);
|
||
dly_tsk(4);
|
||
dly_tsk(4); //4
|
||
|
||
A= C - periph[ADDR('R')].val;
|
||
//si bp milieu appuy? azimut 45
|
||
while (Bp_M == 1)
|
||
{
|
||
demande.data.id='R';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx,demande.msg);
|
||
dly_tsk(4); //4
|
||
|
||
co.data.id ='T';
|
||
co.data.rtr =0;
|
||
co.data.val =450- periph[ADDR('R')].val;
|
||
snd_dtq(CanTx, co.msg);
|
||
dly_tsk(5);
|
||
}
|
||
|
||
|
||
co1.data.id ='T';
|
||
co1.data.rtr =0;
|
||
co1.data.val = C - periph[ADDR('R')].val;
|
||
snd_dtq(CanTx, co1.msg);
|
||
dly_tsk(5);
|
||
co.data.id ='T';
|
||
co.data.rtr =0;
|
||
co.data.val = C - periph[ADDR('R')].val;
|
||
snd_dtq(CanTx, co.msg);
|
||
dly_tsk(5); //5
|
||
}
|
||
}
|
||
|
||
... | ... | |
{
|
||
while(1)
|
||
{
|
||
|
||
|
||
CanFrame co4;
|
||
CanFrame demande4;
|
||
|
||
|
||
demande4.data.id='U';
|
||
demande4.data.rtr=1;
|
||
snd_dtq(CanTx, demande4.msg);
|
||
dly_tsk(10);
|
||
demande.data.id='U';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx, demande.msg);
|
||
dly_tsk(5);
|
||
|
||
Dist= periph[ADDR('U')].val;
|
||
Tourne= Dist- 580;
|
||
... | ... | |
|
||
while(1)
|
||
{
|
||
CanFrame co2,co3;
|
||
CanFrame demande4;
|
||
|
||
demande4.data.id='U';
|
||
demande4.data.rtr=1;
|
||
snd_dtq(CanTx, demande4.msg);
|
||
dly_tsk(20);
|
||
demande.data.id='U';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx, demande.msg);
|
||
dly_tsk(20); //20
|
||
|
||
Dist= periph[ADDR('U')].val;
|
||
Tourne= Dist- 580;
|
||
... | ... | |
if (Dist >1000){
|
||
|
||
Tourne =0;
|
||
co2.data.id ='D';
|
||
co2.data.rtr =0;
|
||
co2.data.val = Tourne;
|
||
snd_dtq(CanTx, co2.msg);
|
||
dly_tsk(25);
|
||
co.data.id ='D';
|
||
co.data.rtr =0;
|
||
co.data.val = 0;
|
||
snd_dtq(CanTx, co.msg);
|
||
dly_tsk(25); //25
|
||
|
||
co3.data.id ='V';
|
||
co3.data.rtr =0;
|
||
co3.data.val = 0;
|
||
snd_dtq(CanTx, co3.msg);
|
||
}
|
||
|
||
|
||
while (Bp_M == 1)
|
||
{
|
||
demande.data.id='U';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx,demande.msg);
|
||
Dist= periph[ADDR('U')].val;
|
||
|
||
dly_tsk(4); //4
|
||
|
||
co.data.id ='D';
|
||
co.data.rtr =0;
|
||
co.data.val =Dist -580;
|
||
snd_dtq(CanTx, co.msg);
|
||
dly_tsk(5);
|
||
}
|
||
|
||
|
||
co2.data.id ='D';
|
||
co2.data.rtr =0;
|
||
co2.data.val = Tourne;
|
||
|
||
co.data.id ='D';
|
||
co.data.rtr =0;
|
||
co.data.val = Tourne;
|
||
|
||
snd_dtq(CanTx, co2.msg);
|
||
dly_tsk(25);
|
||
snd_dtq(CanTx, co.msg);
|
||
dly_tsk(25); //25
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
void vit()
|
||
{
|
||
|
||
while(1)
|
||
{
|
||
CanFrame co3;
|
||
CanFrame co8;
|
||
unsigned char feu;
|
||
|
||
/*
|
||
while (Bp_G == 1)
|
||
{
|
||
|
||
co3.data.id ='V';
|
||
co3.data.rtr =0;
|
||
co3.data.val =0;
|
||
snd_dtq(CanTx, co3.msg);
|
||
co.data.id ='V';
|
||
co.data.rtr =0;
|
||
co.data.val =0;
|
||
snd_dtq(CanTx, co.msg);
|
||
|
||
}
|
||
|
||
co8.data.id ='M';
|
||
co8.data.rtr =1;
|
||
snd_dtq(CanTx, co8.msg);
|
||
while (Bp_M == 1)
|
||
{
|
||
co.data.id ='V';
|
||
co.data.rtr =0;
|
||
co.data.val =10;
|
||
snd_dtq(CanTx, co.msg);
|
||
|
||
}
|
||
co.data.id ='M';
|
||
co.data.rtr =1;
|
||
snd_dtq(CanTx, co.msg);
|
||
dly_tsk(5);
|
||
|
||
feu=(periph[ADDR('M')].val)>>8;
|
||
feu=feu&0x80;
|
||
if(feu==0x00000000)
|
||
feu=(periph[ADDR('M')].val);
|
||
feu=feu&0x8000;
|
||
if(feu==1)
|
||
{
|
||
co3.data.id ='V';
|
||
co3.data.rtr =0;
|
||
co3.data.val = 0;
|
||
snd_dtq(CanTx, co3.msg);
|
||
dly_tsk(10);
|
||
demande.data.id ='V';
|
||
demande.data.rtr =0;
|
||
demande.data.val =Vitesse;
|
||
snd_dtq(CanTx, demande.msg);
|
||
|
||
}
|
||
if(feu==0x10000000)
|
||
|
||
else
|
||
{
|
||
co3.data.id ='V';
|
||
co3.data.rtr =0;
|
||
co3.data.val = Vitesse;
|
||
snd_dtq(CanTx, co3.msg);
|
||
dly_tsk(10);
|
||
}
|
||
|
||
demande.data.id ='V';
|
||
demande.data.rtr =0;
|
||
demande.data.val = Vitesse;
|
||
snd_dtq(CanTx, demande.msg);
|
||
|
||
}
|
||
*/
|
||
co.data.id ='V';
|
||
co.data.rtr =0;
|
||
co.data.val = Vitesse;
|
||
snd_dtq(CanTx, co.msg);
|
||
dly_tsk(10); //10*/
|
||
|
||
co3.data.id ='V';
|
||
co3.data.rtr =0;
|
||
co3.data.val = Vitesse;
|
||
snd_dtq(CanTx, co3.msg);
|
||
dly_tsk(10);
|
||
}
|
||
|
||
}
|
||
... | ... | |
{
|
||
while(1)
|
||
{
|
||
CanFrame co6,co2,co3;
|
||
CanFrame demande4;
|
||
int trou;
|
||
|
||
demande4.data.id='U';
|
||
demande4.data.rtr=1;
|
||
snd_dtq(CanTx, demande4.msg);
|
||
demande.data.id='U';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx, demande.msg);
|
||
|
||
Dist= periph[ADDR('U')].val;
|
||
trou=0;
|
||
... | ... | |
dly_tsk(20);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
void piste()
|
||
|
||
|
||
|
||
/*
|
||
void detect_capteur(void)
|
||
{
|
||
CanFrame demande8,demande9;
|
||
CanFrame co8,co9,co10;
|
||
while(1){
|
||
|
||
demande.data.id='M';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx,demande.msg);
|
||
|
||
co8.data.id ='C';
|
||
co8.data.rtr =1;
|
||
snd_dtq(CanTx, co8.msg);
|
||
couleur= periph[ADDR('M')].val;
|
||
cleur=couleur&0x000F;
|
||
|
||
|
||
|
||
demande.data.id='H';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx,demande.msg);
|
||
|
||
num_capt=(periph[ADDR('C')].val)<<3;
|
||
temps= periph[ADDR('H')].val;
|
||
dly_tsk(10);
|
||
}
|
||
|
||
}
|
||
*/
|
||
|
||
|
||
void depart()
|
||
{
|
||
while(1)
|
||
{
|
||
demande.data.id='M';
|
||
demande.data.rtr=1;
|
||
snd_dtq(CanTx,demande.msg);
|
||
|
||
feu= periph[ADDR('M')].val;
|
||
feu=feu&0x8000;
|
||
feu=feu>>15;
|
||
dly_tsk(10);
|
||
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
branch/tchuem/Emb_App/conf_noyau.cfg | ||
---|---|---|
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
task[]{
|
||
entry_address = piste();
|
||
name = ID_piste;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 8;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
|
||
|
||
task[]{
|
||
entry_address = depart();
|
||
name = ID_depart;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 6;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
|
||
|
||
flag[]{
|
||
name = ev_bus_fin_tr;
|
||
initial_pattern = 0x0000;
|
Formats disponibles : Unified diff
séance libre amelioration des taches, ajout des diff taches