Projet

Général

Profil

« Précédent | Suivant » 

Révision 334

Ajouté par louisdupriet il y a plus de 6 ans

implémentation des taches annexes à terminer le circuit

Voir les différences:

branch/dupriet/Emb_App.tws
[GENERAL_DATA]
[BREAKPOINTS]
[OPEN_WORKSPACE_FILES]
"E:\tp_info6_2018_dupriet\tp_info6\bsp\lcd.c"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\periph.c"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\periph.h"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\uart0.c"
......
[WORKSPACE_FILE_STATES]
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\Debug\mr308.inc" 150 150 1405 394 0 6
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\conf_noyau.cfg" 75 75 1430 351 0 2
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\crt0mr.a30" -8 -30 1596 607 1 1
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\programme_principal_etud.c" 0 0 1596 607 0 0
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\crt0mr.a30" 0 0 1596 607 0 1
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\programme_principal_etud.c" -8 -30 1596 607 1 0
"E:\tp_info6_2018_dupriet\tp_info6\bsp\lcd.c" 175 175 1405 394 0 7
"E:\tp_info6_2018_dupriet\tp_info6\bsp\periph.c" 100 100 1405 394 0 4
"E:\tp_info6_2018_dupriet\tp_info6\bsp\periph.h" 75 75 1405 394 0 3
"E:\tp_info6_2018_dupriet\tp_info6\bsp\uart0.c" 125 125 1405 394 0 5
branch/dupriet/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff0020
RESET=ff0024
branch/dupriet/Emb_App/SessionM32C_E8a_system.hsf
"{55384715-F881-421C-A548-D7D1ABE158E1}PDMRWndInstanceKey0" "{WK_00000001_PDMR}EmbM32C87AppSessionM32C_E8a_system"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000004044"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000020"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "000000000000FFD7"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000512"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FF0576"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FF3598"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000FFF800"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000B0E"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "0000000000000848"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000000001"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "0000000000004044"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000A60"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "0000000000000864"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "00000000000000C0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000"
......
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_33" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_34" "000000000000036A"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_35" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000008"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000B44"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000006"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000120000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000A60"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000000512"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "0000000000000000"
......
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002" "capteur, 2, 0, P, Col, Hex, MA"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEMCnt" "3"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003" "compteur_tours, 2, 0, P, Col, Dec, MA"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004" "celerite, 1, 0, P, Col, Dec, MA"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004_SCOPE" "Global,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0005" "piste, 2, 0, P, Col, Dec, MA"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0005_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEMCnt" "6"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth0" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth1" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth12" "200"
......
[WINDOW_POSITION_STATE_DATA_VD3]
[WINDOW_POSITION_STATE_DATA_VD4]
[WINDOW_Z_ORDER]
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\programme_principal_etud.c"
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\crt0mr.a30"
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\programme_principal_etud.c"
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\conf_noyau.cfg"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\periph.c"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\uart0.c"
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\conf_noyau.cfg"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\lcd.c"
"E:\tp_info6_2018_dupriet\tp_info6\Emb_App\Debug\mr308.inc"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\periph.c"
"E:\tp_info6_2018_dupriet\tp_info6\bsp\periph.h"
[TARGET_NAME]
"M32C E8a SYSTEM" "" 0
......
[FLASH_DETAILS]
"" 0 0 "" 0 "" 0 0 "" 0 0 0 0 0 0 0 "" "" "" "" ""
[BREAKPOINTS]
"d:\profs\tp_info14_travail\tp_info14\emb_app\programme_principal_etud.c" 95 102889376 1 "{00000000-0000-0000-C000-000000000046}" ""
"d:\profs\tp_info14_travail\tp_info14\emb_app\programme_principal_etud.c" 95 86112296 1 "{00000000-0000-0000-C000-000000000046}" ""
[END]
branch/dupriet/Emb_App/programme_principal_etud.c
unsigned int k = 3; //gain asserv tourelle
unsigned int d;
float roue=1;
int celerite=30;
int celerite=50;
unsigned int norme= 870;//494;
unsigned int lecturevit;
unsigned int capteur;
unsigned int compteur_tours=0;
char c[]="";
unsigned int piste;
unsigned short STOP=0;
void desactive(){
void capteur_couleur(){
CanFrame req;
unsigned int detect_change=0;
UINT flag;
while(1){
req.data.id='C';
......
snd_dtq(CanTx,req.msg);
wai_flg(ev_periph,0x01,TWF_ANDW,&flag);
capteur=periph[ADDR('C')].val;
if(capteur==0x5601){celerite=50;}
if(capteur==0x4a01){celerite=5;}
if(capteur==0x5602){celerite=50;}
if(capteur==0x5202){celerite=5;}
if(capteur==0x5603){celerite=50;}
if(capteur==0x4203){celerite=5;}
if(capteur==0x5604){celerite=50;}
if(capteur==0x4304){celerite=5;}
if (capteur==0x7610){celerite=50;roue=0;}
if (capteur==0x7611){celerite=0;dly_tsk(1500);roue=1;celerite=10;dly_tsk(800);celerite=30;}
dly_tsk(5);
}
if(compteur_tours!=0x7610
&& compteur_tours!=0x7611
&& compteur_tours!=0x7612
&&detect_change!=capteur) //protocole pour compter le nombre de tours
{detect_change=capteur;
if(compteur_tours<27){
compteur_tours++;}
else{STOP++;}
}
switch(capteur) {
case 0x5601: //d?but d?tection lasers aux angles de la piste
celerite=50;
break;
case 0x4a01:
celerite=25;
break;
case 0x5602:
celerite=50;
break;
case 0x5202:
celerite=25;
break;
case 0x5603:
celerite=50;
break;
case 0x4203:
celerite=25;
break;
case 0x5604:
celerite=50;
break;
case 0x4304:
celerite=20;
break; //fin d?tection lasers aux angles de la piste
case 0x7612: //piste bleue //vert 18 petit
celerite=20;
break;
case 0x7610: //d?but saut piste rouge //vert petit 16
celerite=55;
roue=0;
break;
case 0x7611: //vert petit 17
celerite=0;
dly_tsk(1500);
roue=1;
celerite=10;
dly_tsk(800);
celerite=20;
break; //fin saut piste rouge
}
dly_tsk(5);}
}
......
wai_flg(ev_periph,0x01,TWF_ANDW,&flag);
z=periph[ADDR('D')].val;
comm.data.id='V';
comm.data.rtr=0;
comm.data.val=celerite;
snd_dtq(CanTx,comm.msg);
dly_tsk(1000);
comm.data.id='V';
comm.data.rtr=0;
comm.data.val=celerite;
snd_dtq(CanTx,comm.msg);
dly_tsk(100); //libere le processeur
}
}
......
wai_flg(ev_periph,0x01,TWF_ANDW,&flag);
d=periph[ADDR('U')].val;
dly_tsk(4);
if (d<1700){
if (d<2000){
comm.data.id='D';
comm.data.rtr=0;
comm.data.val=roue*(-norme+d);
......
dly_tsk(10);
}
}
void afficheur(){/*
CanFrame req;
UINT flag;
while(1){
req.data.id='H';
req.data.rtr=1;
periph[ADDR('H')].ev=0x01;
snd_dtq(CanTx,req.msg);
wai_flg(ev_periph,0x01,TWF_ANDW,&flag);
piste = periph[ADDR('H')].val;
dly_tsk(100);
c=('%d',piste);
lcd_str(c);
}*/
}
void main()
{
......
ports_mcu();
lcd_init();
periph_init();
periph_nom("#Anaec*");
periph_nom("#Anaec*");
lcd_str(c);
can_init();
clavier_init(1);
capture_init();
//sta_tsk(ID_avancer);
sta_tsk(ID_avancer);
//sta_cyc(ID_acqui);
//sta_tsk(ID_afficheur);
sta_tsk(ID_asserv_tourelle);
sta_tsk(ID_asserv_direction);
sta_tsk(ID_periph_rx);
sta_tsk(ID_desactive);
sta_tsk(ID_capteur_couleur);
while(1)
{
if(STOP){
ter_tsk(ID_asserv_tourelle);
ter_tsk(ID_asserv_direction);
ter_tsk(ID_periph_rx);
ter_tsk(ID_capteur_couleur);
ter_tsk(ID_avancer);
}
/*
dly_tsk(100);
/*
LED_J=1;
dly_tsk(100);
LED_J=0;
......
void acqui()
{
//LED_V=!LED_V;
LED_V=!LED_V;
}
branch/dupriet/Emb_App/conf_noyau.cfg
name = ID_avancer;
stack_size = 256;
stack_section = stack;
priority = 3;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
......
};
task[]{
entry_address = desactive();
name = ID_desactive;
entry_address = capteur_couleur();
name = ID_capteur_couleur;
stack_size = 256;
stack_section = stack;
priority = 1;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = afficheur();
name = ID_afficheur;
stack_size = 256;
stack_section = stack;
priority = 6;
initial_start = OFF;
exinf = 0x0;

Formats disponibles : Unified diff