Projet

Général

Profil

« Précédent | Suivant » 

Révision 383

Ajouté par nacao il y a plus de 6 ans

Voir les différences:

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