Projet

Général

Profil

« Précédent | Suivant » 

Révision 247

Ajouté par casotty il y a plus de 6 ans

Ajout du depart progressif
Asservissement des roues passée en tache

Voir les différences:

branch/sotty/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff0032
RESET=ff002e
branch/sotty/Emb_App/programme_principal_etud.c
short distance_telemetre(void);
void vitesse_roue(char vitesse);
void angle_roue(short angle);
void asserv_roue(void);
void asserv_roue(VP_INT stacd);
int send_requete(unsigned char id_periph);
void send_commande(unsigned char id_periph, short val);
float distance_mur = 0.0;
short distance_mur = 0;
short angle_tourelle = 450;
short vit_roue = 30;
float K_roue = 1.5;
short vit_roue = 15;
short K_roue = 1;
short ang_roue = 0;
char num_piste;
void main()
{
int k;
init();
//Obtention de la couleur du feu
......
dly_tsk(50);
}
sta_tsk(ID_asserv_roue);
for(k=1 ; k<30 ; k++) {
vit_roue = k;
dly_tsk(100);
}
//Obtention de la piste
num_piste = send_requete('M') & 0x00FF;
......
LED_J=1;
dly_tsk(100);
LED_J=0;
asserv_roue();
dly_tsk(100);
}
}
......
}
void asserv_roue(void){
void asserv_roue(VP_INT stacd){
//Maintient de la voiture au centre de la piste
short telemetre;
while(1){
//Angle des roues // A enlever de la boucle d'asserv
distance_mur = distance_telemetre()*sin(3.1415*angle_tourelle/1800.0);
......
angle_roue(ang_roue);
vitesse_roue(vit_roue);
dly_tsk(50);
}
}
......
clavier_init(1);
capture_init();
sta_tsk(ID_periph_rx);
sta_cyc(ID_acqui);
dly_tsk(100);
sta_tsk(ID_asserv_tourelle);
sta_tsk(ID_periph_rx);
}
branch/sotty/Emb_App/conf_noyau.cfg
//
// kernel.cfg : building file for MR308 Ver.4.00
//
// Generated by M3T-MR308 GUI Configurator at 2018/12/05 15:47:07
// Generated by M3T-MR308 GUI Configurator at 2018/12/14 14:08:06
//
////////////////////////////////////////////////////////////////////////////////
......
// max definition
maxdefine{
max_task = 3;
max_task = 5;
max_flag = 3;
max_dtq = 2;
max_cyh = 2;
max_cyh = 1;
max_vdtq = 1;
};
......
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = asserv_roue();
name = ID_asserv_roue;
stack_size = 1024;
stack_section = stack;
priority = 6;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;
......
};
vdataqueue[]{
name = QdmTouche;
wait_queue = TA_TFIFO;

Formats disponibles : Unified diff