Révision 383
Ajouté par nacao il y a plus de 6 ans
branch/nan_cao/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
VOLTAGE_5_0=1
|
||
VOLTAGE_3_3=0
|
||
[FW_LOCATE]
|
||
FWADDRESS=f000
|
||
RAMADDRESS=04
|
||
FWADDRESS=ffd0
|
||
RAMADDRESS=c3
|
||
[WDT]
|
||
WDT_USE=0
|
||
[MCU_SETTING]
|
branch/nan_cao/Emb_App/programme_principal_etud.c | ||
---|---|---|
short cap;
|
||
short numcap;
|
||
short couleurcap;
|
||
short capteur;
|
||
short mod;
|
||
short angle;
|
||
//short capteur;
|
||
CanFrame comm_ang;
|
||
CanFrame comm_vitesse;
|
||
|
||
... | ... | |
{
|
||
req.data.id='R'; //lecture angle de la tourelle
|
||
req.data.rtr=1;
|
||
snd_dtq(CanRx, req.msg);
|
||
|
||
//Attente de la reponse
|
||
periph[ADDR('R')].ev=0x01;
|
||
snd_dtq(CanTx,req.msg);
|
||
... | ... | |
{
|
||
req.data.id='U'; //distance mesueree par la tourelle
|
||
req.data.rtr=1;
|
||
snd_dtq(CanRx, req.msg);
|
||
|
||
//Attente de la reponse
|
||
periph[ADDR('U')].ev=0x02;
|
||
snd_dtq(CanTx,req.msg);
|
||
... | ... | |
|
||
comm_ang.data.id='D'; //angle de roue
|
||
comm_ang.data.rtr=0;
|
||
if(distance < 900) comm_ang.data.val=-(710-distance);
|
||
comm_ang.data.val=angle;
|
||
if(distance < 1100) angle=-(710-distance);
|
||
else comm_ang.data.val=0;
|
||
snd_dtq(CanTx,comm_ang.msg);
|
||
dly_tsk(20);
|
||
... | ... | |
|
||
}
|
||
|
||
void vit(){
|
||
void capteur(){
|
||
CanFrame req,reponse,comm;
|
||
UINT flag;
|
||
while(1)
|
||
{ dly_tsk(20);
|
||
|
||
req.data.id='C'; //le dernier capteur touche
|
||
req.data.rtr=1;
|
||
periph[ADDR('C')].ev=0x04;
|
||
snd_dtq(CanTx,req.msg);
|
||
wai_flg(ev_periph, 0x04, TWF_ANDW,&flag);
|
||
|
||
cap=periph[ADDR('C')].val; // contient la valeur de retour du simulateur.
|
||
|
||
req.data.id='M'; //mode de course
|
||
req.data.rtr=1;
|
||
periph[ADDR('M')].ev=0x05;
|
||
snd_dtq(CanTx,req.msg);
|
||
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;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
/*
|
||
void vit(){ // OK POUR PISTE VERT ET BLEU
|
||
|
||
CanFrame req,reponse;
|
||
|
||
UINT flag;
|
||
while(1)
|
||
{ req.data.id='V';
|
||
req.data.rtr=1;
|
||
snd_dtq(CanRx, req.msg);
|
||
//Attente de la reponse
|
||
periph[ADDR('V')].ev=0x03;
|
||
snd_dtq(CanTx,req.msg);
|
||
... | ... | |
vitesse=periph[ADDR('V')].val; // contient la valeur de retour du simulateur.
|
||
|
||
comm_vitesse.data.id='V'; //vitesse de roue
|
||
comm_vitesse.data.rtr=0;
|
||
if(distance < 850) comm_vitesse.data.val=35;
|
||
//else if (couleurcap==56 && numcap==01) comm_vitesse.data.val = 70;
|
||
//else if (couleurcap==56 && numcap==02) comm_vitesse.data.val = 35;
|
||
|
||
//else if (capteur == 0x5601) comm_vitesse.data.val = 70;
|
||
//else if (capteur == 0x5602) comm_vitesse.data.val = 35;
|
||
comm_vitesse.data.rtr=0;
|
||
if(distance < 850) comm_vitesse.data.val=30;
|
||
else comm_vitesse.data.val=vitesse;
|
||
snd_dtq(CanTx,comm_vitesse.msg);
|
||
dly_tsk(10);
|
||
dly_tsk(200);
|
||
}
|
||
|
||
}
|
||
|
||
/*
|
||
void mod(){
|
||
|
||
CanFrame req,reponse,comm;
|
||
UINT flag;
|
||
while(1)
|
||
*/
|
||
void vit(){
|
||
|
||
while(1)
|
||
{
|
||
req.data.id='M'; //mode de course
|
||
req.data.rtr=1;
|
||
snd_dtq(CanRx, req.msg);
|
||
//Attente de la reponse
|
||
periph[ADDR('M')].ev=0x05;
|
||
snd_dtq(CanTx,req.msg);
|
||
wai_flg(ev_periph, 0x05, TWF_ANDW,&flag);
|
||
|
||
m=periph[ADDR('M')].val; // contient la valeur de retour du simulateur.
|
||
num_piste=m & 0x000F; // numero de piste
|
||
// mode_course = m & ;
|
||
// snd_dtq(CanTx,comm.msg);
|
||
|
||
}
|
||
dly_tsk(500);
|
||
comm_vitesse.data.id='V'; //Vitesse de la tour
|
||
comm_vitesse.data.rtr=0;
|
||
comm_vitesse.data.val=vitesse;
|
||
snd_dtq(CanTx,comm_vitesse.msg);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
void capteur(){
|
||
CanFrame req,reponse,comm;
|
||
UINT flag;
|
||
while(1)
|
||
{ dly_tsk(20);
|
||
req.data.id='C'; //le dernier capteur touche
|
||
req.data.rtr=1;
|
||
periph[ADDR('C')].ev=0x04;
|
||
snd_dtq(CanTx,req.msg);
|
||
wai_flg(ev_periph, 0x04, TWF_ANDW,&flag);
|
||
|
||
cap=periph[ADDR('C')].val; // contient la valeur de retour du simulateur.
|
||
couleurcap = cap >> 8; // 0XFF00 couleur de capteur
|
||
numcap = cap << 8; // 0x00FF numero de capteur
|
||
|
||
switch(couleurcap){
|
||
case 56:
|
||
capteur= 'V';
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
*/
|
||
void main()
|
||
{
|
||
CanFrame comm;
|
||
... | ... | |
periph_init();
|
||
periph_nom("#nan*");
|
||
|
||
|
||
lcd_putc(1);
|
||
can_init();
|
||
clavier_init(1);
|
||
capture_init();
|
||
|
||
|
||
sta_tsk(ID_ang_roue);
|
||
sta_tsk(ID_ang_tourelle);
|
||
sta_tsk(ID_vitesse);
|
||
sta_tsk(ID_capteur);
|
||
sta_tsk(ID_mode);
|
||
sta_tsk(ID_capteur);
|
||
sta_cyc(ID_acqui);
|
||
sta_tsk(ID_periph_rx);
|
||
|
||
while(1)
|
||
{
|
||
{
|
||
|
||
|
||
|
||
switch(num_piste){
|
||
case 1:
|
||
vitesse=30;
|
||
|
||
break;
|
||
case 2:
|
||
vitesse=30;
|
||
break;
|
||
|
||
case 3:
|
||
if(cap==0x7601) {
|
||
vitesse=80;
|
||
|
||
}
|
||
else if (cap==0x5603) vitesse=50;
|
||
else if (cap==0x5202) vitesse=40;
|
||
else if (cap==0x7602) vitesse=5;
|
||
else vitesse=30;
|
||
break;
|
||
|
||
}
|
||
|
||
|
||
|
||
LED_J=1;
|
||
dly_tsk(100);
|
||
LED_J=0;
|
branch/nan_cao/Emb_App/conf_noyau.cfg | ||
---|---|---|
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = capteur();
|
||
name = ID_capteur;
|
||
stack_size = 512;
|
||
stack_section = stack;
|
||
priority = 7;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
|
||
task[]{
|
branch/nan_cao/Emb_App/DefaultSession.hsf | ||
---|---|---|
[CONFIG_INFO_VD4]
|
||
0
|
||
[WINDOW_POSITION_STATE_DATA_VD1]
|
||
"Help" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||
"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.03" 195 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0"
|
||
"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 195 0 0 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0"
|
||
"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 284 0 0 350 200 18 0 "" "0.0"
|
||
... | ... | |
[WINDOW_POSITION_STATE_DATA_VD3]
|
||
[WINDOW_POSITION_STATE_DATA_VD4]
|
||
[WINDOW_Z_ORDER]
|
||
"D:\laffont\Tp_Info14\Emb_App\programme_principal_etud.c"
|
||
"D:\laffont\Tp_Info14\Emb_App\uart0.c"
|
||
"D:\laffont\Tp_Info14\Emb_App\crt0mr.a30"
|
||
"D:\laffont\Tp_Info14\Emb_App\conf_noyau.cfg"
|
||
"D:\laffont\Tp_Info14\Emb_App\periph.c"
|
||
"D:\laffont\Tp_Info14\Emb_App\c_sec.inc"
|
||
"E:\tp_info6_2018_nan_cao\tp_info6\Emb_App\programme_principal_etud.c"
|
||
"E:\tp_info6_2018_nan_cao\tp_info6\Emb_App\conf_noyau.cfg"
|
||
"E:\tp_info6_2018_nan_cao\tp_info6\Emb_App\crt0mr.a30"
|
||
"E:\tp_info6_2018_nan_cao\tp_info6\bsp\uart0.c"
|
||
"E:\tp_info6_2018_nan_cao\tp_info6\Emb_App\Debug\sys_rom.inc"
|
||
"E:\tp_info6_2018_nan_cao\tp_info6\Emb_App\Debug\mr308.inc"
|
||
[TARGET_NAME]
|
||
"" "" 0
|
||
[STATUSBAR_STATEINFO_VD1]
|
branch/nan_cao/Emb_App/EmbM32C87App.tps | ||
---|---|---|
"SessionM32C_E8a_system"
|
||
[GENERAL_DATA_PROJECT]
|
||
[GENERAL_DATA_CONFIGURATION_Debug]
|
||
"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE"
|
||
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
|
||
[SESSIONS_Debug]
|
||
"DefaultSession"
|
||
"SessionM32C_E8a_system"
|
Formats disponibles : Unified diff