Révision 391
Ajouté par crzemeta il y a plus de 6 ans
branch/zemeta/Emb_App.tws | ||
---|---|---|
"E:\tp_info6_2018_zemeta\tp_info6\bsp\uart0.c"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\conf_noyau.cfg"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\crt0mr.a30"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\Debug\mr308.inc"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\programme_principal_etud.c"
|
||
[WORKSPACE_FILE_STATES]
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\Debug\mr308.inc" 25 25 1430 351 0 8
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\conf_noyau.cfg" 1 0 1426 347 0 1
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\crt0mr.a30" -8 -30 1596 539 1 5
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\programme_principal_etud.c" 0 0 1596 539 0 4
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\crt0mr.a30" 0 0 1596 539 0 5
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\programme_principal_etud.c" -8 -30 1596 539 1 4
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\can.c" 50 50 1430 351 0 2
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\dma0.c" 75 75 1430 351 0 3
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\periph.c" 0 0 1430 351 0 7
|
branch/zemeta/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0020
|
||
RESET=ff001a
|
branch/zemeta/Emb_App/SessionM32C_E8a_system.hsf | ||
---|---|---|
"{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" "0000000000000000"
|
||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FF0020"
|
||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FF001A"
|
||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000000000"
|
||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000000"
|
||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "0000000000000700"
|
||
... | ... | |
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002_SCOPE" "Current Scope,"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003" "angle_reel, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003_SCOPE" "Current Scope,"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004" "d_reel, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004" "D, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004_SCOPE" "Current Scope,"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0005" "D, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0005" "error2, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0005_SCOPE" "Current Scope,"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0006" "error2, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0006" "requete.data.val, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0006_SCOPE" "Current Scope,"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0007" "gap, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0007" "d_reel, 2, 0, P, Col, Dec, MA"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0007_SCOPE" "Current Scope,"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0008" "requete.data.val, 2, 0, P, Col, Dec, MN"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0008" "capt_detecte, 2, 0, P, Col, Dec, MA"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0008_SCOPE" "Current Scope,"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEMCnt" "9"
|
||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth0" "120"
|
||
... | ... | |
[WINDOW_POSITION_STATE_DATA_VD3]
|
||
[WINDOW_POSITION_STATE_DATA_VD4]
|
||
[WINDOW_Z_ORDER]
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\programme_principal_etud.c"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\crt0mr.a30"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\programme_principal_etud.c"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\conf_noyau.cfg"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\can.c"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\dma0.c"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\uart0.c"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\conf_noyau.cfg"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\periph.c"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Emb_App\Debug\mr308.inc"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\Disassembly"
|
||
"E:\tp_info6_2018_zemeta\tp_info6\bsp\can.c"
|
||
[TARGET_NAME]
|
||
"M32C E8a SYSTEM" "" 0
|
||
[STATUSBAR_STATEINFO_VD1]
|
||
... | ... | |
[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 102216336 1 "{00000000-0000-0000-C000-000000000046}" ""
|
||
"d:\profs\tp_info14_travail\tp_info14\emb_app\programme_principal_etud.c" 95 92930608 1 "{00000000-0000-0000-C000-000000000046}" ""
|
||
[END]
|
branch/zemeta/Emb_App/programme_principal_etud.c | ||
---|---|---|
//'I'/73/Ox49 : D?finition du nom du v?hicule. Doit d?buter par le caract?re '#' et entraine le chargement de la configuration de piste
|
||
// correspondant au nom du v?hicule si le nom se termine par '*'
|
||
CanFrame comm,comm2,comm3;
|
||
unsigned short k=1,k2=1, angle_reel, error,error2,d_reel,D=714, d_max = 2000 ; // D = 500 pour piste verte , D = 714 pour piste verte
|
||
unsigned short consigne_tour = 450 , vitesse = 10, capt_detecte ; // V = 30 pour piste verte , V = 38 pour piste bleu
|
||
CanFrame requete,requete3,requete4 ;
|
||
char gap = 0;
|
||
|
||
unsigned short k=1,k2=1, angle_reel, error,error2,d_reel,D/*=500*/, d_max = 2000 ; // D = 500 pour piste verte , D = 714 pour piste verte
|
||
unsigned short consigne_tour/* = 900*/ , vitesse_roue/*=20*/, capt_detecte, comRoue; ; // V = 30 pour piste verte , V = 38 pour piste bleu
|
||
CanFrame requete,requete3,requete4 ;
|
||
|
||
void main()
|
||
{
|
||
... | ... | |
clavier_init(1);
|
||
capture_init();
|
||
sta_tsk(ID_periph_rx);
|
||
|
||
//sta_cyc(ID_acqui);
|
||
|
||
|
||
// sta_tsk(id_trou);
|
||
// sta_cyc(ID_acqui);
|
||
sta_tsk(id_dist);
|
||
|
||
comRoue=-k2*error2 ;
|
||
sta_tsk(id_roue);
|
||
sta_tsk(id_detec);
|
||
sta_tsk(id_capt);
|
||
sta_tsk(id_angle);
|
||
sta_tsk(id_ass_t);
|
||
sta_tsk(id_roue);
|
||
sta_tsk(id_dist);
|
||
dly_tsk(2000);
|
||
sta_tsk(id_avance);
|
||
|
||
... | ... | |
{
|
||
while (1)
|
||
{
|
||
requete.data.id = 'R' ; // variable requete sert a envoyter une requete.
|
||
requete.data.id = 'R' ;
|
||
requete.data.rtr = 1 ;
|
||
snd_dtq(CanTx, requete.msg);
|
||
dly_tsk(5) ;
|
||
... | ... | |
|
||
void avance_voiture()
|
||
{
|
||
while(1)
|
||
while(1) // Commande d'avance voiture
|
||
{
|
||
comm.data.id = 'V' ;
|
||
comm.data.rtr = 0 ;
|
||
comm.data.val = vitesse ;
|
||
comm.data.val = vitesse_roue ;
|
||
snd_dtq(CanTx, comm.msg) ;
|
||
dly_tsk(5);
|
||
}
|
||
... | ... | |
{
|
||
while(1)
|
||
{
|
||
//asservissement position tourelle
|
||
//asservissement position tourelle selon la consigne envoy?e
|
||
error = consigne_tour - angle_reel ;
|
||
// envoie nouvelle commande tourelle
|
||
comm.data.id = 'T' ;
|
||
comm.data.rtr = 0 ;
|
||
comm.data.val = k*error ;
|
||
... | ... | |
|
||
void ass_roue()
|
||
{
|
||
while(1)
|
||
while(1) // solution qui evite les trous a tous les coups
|
||
{
|
||
while (d_reel<d_max)
|
||
while (d_reel<=d_max)
|
||
{
|
||
error2 = D - d_reel ;
|
||
comm2.data.id = 'D' ;
|
||
comm2.data.rtr = 0 ;
|
||
comm2.data.val = -k2*error2 ;
|
||
comm2.data.val = comRoue;
|
||
snd_dtq(CanTx, comm2.msg) ;
|
||
dly_tsk(5) ;
|
||
}
|
||
... | ... | |
{
|
||
while(1)
|
||
{
|
||
//recuperation distance telemetre
|
||
//Acquisition de la distance telemetre
|
||
requete3.data.id = 'U' ;
|
||
requete3.data.rtr = 1 ;
|
||
snd_dtq(CanTx, requete3.msg);
|
||
... | ... | |
|
||
void trou()
|
||
{
|
||
while(1)
|
||
while(1) // Solution pour eviter les roue mais marche pas tout le temps
|
||
{
|
||
while(d_reel>d_max)
|
||
while(d_reel>D)
|
||
{
|
||
error2 = D - d_reel ;
|
||
comm2.data.id = 'D' ;
|
||
comm2.data.rtr = 0 ;
|
||
comm2.data.val = 0 ;
|
||
... | ... | |
}
|
||
}
|
||
|
||
void capteur()
|
||
void capteur() // detecteur de catpeurs des pistes
|
||
{
|
||
while (1)
|
||
{
|
||
... | ... | |
snd_dtq(CanTx, requete.msg);
|
||
dly_tsk(5) ;
|
||
capt_detecte = periph[ADDR('C')].val;
|
||
dly_tsk(10) ;
|
||
}
|
||
}
|
||
|
||
void detection() // Sp?ciale d?dicace ? la piste rouge
|
||
{
|
||
while (1)
|
||
{
|
||
LED_R=0;
|
||
if(capt_detecte!=22019) // course normale
|
||
{
|
||
D=710;
|
||
consigne_tour=450;
|
||
vitesse_roue = 20;
|
||
comRoue = -k2*error2 ;
|
||
}
|
||
else if (capt_detecte==22019) // detection de ligne droite de saut
|
||
{
|
||
LED_R=1;
|
||
D=500;
|
||
consigne_tour=900;
|
||
vitesse_roue = 45; // valeur pour un saut parfait dr la piste rouge
|
||
comRoue = 0 ;
|
||
}
|
||
dly_tsk(10);
|
||
}
|
||
}
|
branch/zemeta/Emb_App/conf_noyau.cfg | ||
---|---|---|
exinf = 0x0;
|
||
};
|
||
|
||
|
||
task[]{
|
||
entry_address = ass_roue();
|
||
name = id_roue;
|
||
... | ... | |
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
task[]{
|
||
entry_address = detection();
|
||
name = id_detec;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 2;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
task[]{
|
||
entry_address = acquis_distance();
|
||
name = id_dist;
|
||
stack_size = 256;
|
branch/zemeta/Emb_App/EmbM32C87App.tps | ||
---|---|---|
"SessionM32C_E8a_system"
|
||
[GENERAL_DATA_PROJECT]
|
||
[GENERAL_DATA_CONFIGURATION_Debug]
|
||
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
|
||
"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE"
|
||
[SESSIONS_Debug]
|
||
"DefaultSession"
|
||
"SessionM32C_E8a_system"
|
Formats disponibles : Unified diff
Passage de piste rouge ok : mais parfois vehicule tombe dans le roue