Projet

Général

Profil

« Précédent | Suivant » 

Révision 467

Ajouté par grlebanito il y a plus de 6 ans

piste v+b, affichage lcd

Voir les différences:

branch/lebanitou/Emb_App.tws
[BREAKPOINTS]
[OPEN_WORKSPACE_FILES]
"E:\tp_info6_lebanitou\bsp\lcd.c"
"E:\tp_info6_lebanitou\bsp\lcd.h"
"E:\tp_info6_lebanitou\bsp\uart0.c"
"E:\tp_info6_lebanitou\Emb_App\conf_noyau.cfg"
"E:\tp_info6_lebanitou\Emb_App\crt0mr.a30"
......
"E:\tp_info6_lebanitou\Emb_App\crt0mr.a30" 75 75 1430 351 0 1
"E:\tp_info6_lebanitou\Emb_App\programme_principal_etud.c" -8 -30 1596 539 1 0
"E:\tp_info6_lebanitou\bsp\lcd.c" 100 100 1430 351 0 4
"E:\tp_info6_lebanitou\bsp\lcd.h" 125 125 1430 351 0 5
"E:\tp_info6_lebanitou\bsp\uart0.c" 125 125 1430 351 0 3
[LOADED_PROJECTS]
"EmbM32C87App"
branch/lebanitou/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff0130
RESET=ff0034
branch/lebanitou/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" "0000000000000512"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FF2DBE"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FF2CD3"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000FFF800"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000001988"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "0000000000000BDA"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000001BAC"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "0000000000000BF0"
"{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_20" "00000000000000C5"
"{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" "00000000000019C0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000001BD6"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "000000000000198E"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000001BB0"
"{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"
......
"E:\tp_info6_lebanitou\bsp\lcd.c"
"E:\tp_info6_lebanitou\Emb_App\crt0mr.a30"
"E:\tp_info6_lebanitou\Emb_App\conf_noyau.cfg"
"E:\tp_info6_lebanitou\bsp\lcd.h"
"E:\tp_info6_lebanitou\bsp\uart0.c"
[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 90621984 1 "{00000000-0000-0000-C000-000000000046}" ""
"d:\profs\tp_info14_travail\tp_info14\emb_app\programme_principal_etud.c" 95 89838856 1 "{00000000-0000-0000-C000-000000000046}" ""
[END]
branch/lebanitou/Emb_App/programme_principal_etud.c
//variables globales utilis?es par les asservissements
int pos_tourelle; //position de la tourelle
int vitesse;
int pos;
int pos=0;
CanFrame comm;
int consigne=450; // valeur de la consigne
int k=1;
int k_a=1; // gain
int k=1; // gain
int angle;
int alpha;
int mur=710;
int valeur;
int valeur1;
short dist,error;
int pos=0;
int mur=700;
int take;
int capt;
int numero;
int mode;
int feu;
short code_touche;
//telemetre
void rotation()
{
CanFrame comm;
comm.data.id= 'T';
comm.data.rtr= 0; //indique une ?criture
comm.data.val= 120;
}
//envoie la voiture
void essai()
{
while(1){
comm.data.id= 'V';
comm.data.rtr= 0; //indique une ?criture
comm.data.val= 25;
snd_dtq(CanTx, comm.msg);
//for?age du vehicule ? l'arr?t
if(Bp_G==1)
{
comm.data.val= 0;
snd_dtq(CanTx,comm.msg);
}
else
{
comm.data.val= 25;
snd_dtq(CanTx,comm.msg);
}
//feu tricolore
feu=periph[ADDR('M')].val;
//feu=feu&0x80;
if(feu==0x00000000)
{
comm.data.val= 0;
snd_dtq(CanTx,comm.msg);
}
else
{
comm.data.val= 25;
snd_dtq(CanTx,comm.msg);
}
dly_tsk(20);
}
}
......
// asservissement tourelle
void asservis()
{
CanFrame requete ;
CanFrame reponse;
CanFrame comm;
while(1){
requete.data.id='R';
requete.data.rtr=1; //Indique une requ?te de lecture
snd_dtq(CanTx, requete.msg);
dly_tsk(5);
angle=periph[ADDR('R')].val;
dly_tsk(5);
valeur = consigne-angle;
comm.data.id= 'T';
comm.data.rtr= 0;
valeur=k*(consigne-angle);
comm.data.val=valeur;
snd_dtq(CanTx, comm.msg);
comm.data.rtr= 0;
comm.data.val=valeur;
snd_dtq(CanTx, comm.msg);
dly_tsk(10);
}
}
}
// asservissement direction des roues
void direction()
// asservissement direction des roues et distance
void distance()
{
CanFrame requete;
CanFrame comm;
CanFrame requete_pos;
CanFrame reponse;
CanFrame comm_alpha;
while(1){
while(mur<=pos){
requete.data.id='D';
requete.data.rtr=1; //Indique une requ?te de lecture
snd_dtq(CanTx, requete.msg);
comm.data.id= 'D';
comm.data.rtr= 0;
take=k*(mur-pos);
comm.data.val=-take;
snd_dtq(CanTx, comm.msg);
dly_tsk(5);
}
dly_tsk(10);
requete_pos.data.id='U';
requete_pos.data.rtr=1; //Indique une requ?te de lecture
snd_dtq(CanTx, requete_pos.msg);
dly_tsk(5);
pos=periph[ADDR('U')].val;
}
if( pos < 1500 )
{
if(pos<1100)
{
alpha=-(700-pos);
}
else
{
comm_alpha.data.val=0;
}
comm_alpha.data.id= 'D';
comm_alpha.data.rtr= 0;
comm_alpha.data.val=alpha;
snd_dtq(CanTx, comm_alpha.msg);
}
}
}
void distance()
void modecourse()
{
CanFrame requete ;
while(1){
requete.data.id='U';
requete.data.rtr=1; //Indique une requ?te de lecture
snd_dtq(CanTx, requete.msg);
dly_tsk(5);
pos=periph[ADDR('U')].val;
}
}
CanFrame requete ;
UINT flag;
while(1){
requete.data.id='C'; // informations sur le dernier capteur touch?
requete.data.rtr=1; //Indique une requ?te de lecture
snd_dtq(CanTx,requete.msg);
capt=periph[ADDR('C')].val;
requete.data.id='M'; //mode de course
requete.data.rtr=1;
snd_dtq(CanTx,requete.msg);
mode=periph[ADDR('M')].val;
numero= mode&0x000F;
dly_tsk(15);
}
}
void clavier()
{
while(1)
{
vrcv_dtq(QdmTouche,&code_touche);
}
dly_tsk(30);
}
void acqui()
{
LED_V=!LED_V;
LED_V=!LED_V;
}
//affichage de la valeur de la distance sur lcd
//affichage des pistes sur lcd
void affichage()
{
while(1){
int valeur1;
char str[20];
sprintf(str,"%d",valeur1);
lcd_str(str);
}
char str[20];
while(1){
switch(numero)
{
case 1:
lcd_str("vert");
break;
case 2:
lcd_str("bleu");
break;
case 3:
lcd_str("rouge");
break;
case 4:
lcd_str("noir");
break;
}
dly_tsk(10);
}
}
void main()
{
......
capture_init();
sta_tsk(ID_periph_rx);
sta_tsk(ID_asservis);
sta_tsk(ID_direction);
dly_tsk(2000);
// sta_tsk(ID_direction);
sta_tsk(ID_essai);
//sta_tsk(ID_distance);
//sta_cyc(ID_acqui);
sta_tsk(ID_distance);
sta_cyc(ID_acqui);
sta_tsk(ID_affichage);
sta_tsk(ID_modecourse);
sta_tsk(ID_clavier);
while(1){
branch/lebanitou/Emb_App/conf_noyau.cfg
// max definition
maxdefine{
max_task = 3;
max_task = 7;
max_flag = 3;
max_dtq = 2;
max_cyh = 1;
......
name = ID_asservis;
stack_size = 512;
stack_section = stack;
priority = 8;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
//task[]{
// entry_address = rotation();
// name = ID_rotation;
// stack_size = 512;
// stack_section = stack;
// priority = 8;
// initial_start = OFF;
// exinf = 0x0;
//};
task[]{
entry_address = rotation();
name = ID_rotation;
entry_address = distance();
name= ID_distance;
stack_size = 512;
stack_section = stack;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = clavier();
name = ID_clavier;
stack_size = 512;
stack_section = stack;
priority = 8;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = direction();
name = ID_direction;
entry_address = modecourse();
name = ID_modecourse;
stack_size = 512;
stack_section = stack;
priority = 8;
......
exinf = 0x0;
};
//task[]{
// entry_address = distance();
// name = ID_distance;
// stack_size = 512;
// stack_section = stack;
// priority = 8;
// initial_start = OFF;
// exinf = 0x0;
//};
//task[]{
// entry_address = detection();
// name = ID_detection;
// stack_size = 512;
// stack_section = stack;
// priority = 8;
// initial_start = OFF;
// exinf = 0x0;
//};
task[]{
entry_address = affichage();
name = ID_affichage;
branch/lebanitou/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