Révision 208
Ajouté par anfichot1 il y a plus de 6 ans
branch/fichot/Emb_App/programme_principal_etud.c | ||
---|---|---|
// correspondant au nom du v?hicule si le nom se termine par '*'
|
||
|
||
|
||
int k=2;
|
||
int vitesse = 50;
|
||
int k=4;
|
||
int vitesse = 40;
|
||
|
||
|
||
|
||
... | ... | |
snd_dtq (CanTx,vit_roue.msg);
|
||
}*/
|
||
|
||
void rot_tourelle()
|
||
void asserv_tourelle()
|
||
{
|
||
CanFrame comm;
|
||
comm.data.id = 'T';
|
||
short angle;
|
||
CanFrame req, reponse;
|
||
|
||
|
||
comm.data.id = 'T';
|
||
comm.data.rtr = 0;
|
||
comm.data.val = 120;
|
||
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
|
||
short pos_tourelle(){
|
||
|
||
CanFrame req, reponse;
|
||
short angle;
|
||
|
||
snd_dtq(CanTx, comm.msg);
|
||
while(1){
|
||
req.data.id = 'R';
|
||
req.data.rtr = 1;
|
||
|
||
snd_dtq(CanTx, req.msg);
|
||
rcv_dtq(CanRx, &reponse.msg);
|
||
angle = reponse.data.val;
|
||
|
||
return angle;
|
||
}
|
||
|
||
|
||
void asserv(VP_INT stacd){
|
||
|
||
CanFrame comm;
|
||
|
||
while(1){
|
||
comm.data.id = 'T';
|
||
angle = reponse.data.val;
|
||
|
||
comm.data.id = 'T';
|
||
comm.data.rtr = 0;
|
||
comm.data.val = k*(450 - position_tourelle());
|
||
comm.data.val = k*(450 - angle);
|
||
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
}
|
||
}
|
||
|
||
short distance_telemetre(void){
|
||
/*short distance_telemetre(void){
|
||
|
||
CanFrame requete, reponse;
|
||
short distance;
|
||
... | ... | |
snd_dtq(CanTx, requete.msg);
|
||
rcv_dtq(CanRx, &reponse.msg);
|
||
|
||
if(reponse.data.id != 'U' )
|
||
{
|
||
rcv_dtq(CanRx, &reponse.msg);
|
||
}
|
||
distance = reponse.data.val;
|
||
return distance;
|
||
}
|
||
return distance;
|
||
}*/
|
||
|
||
|
||
void angle_roue(short angle){
|
||
/*void asserv_roue(){
|
||
|
||
short dist;
|
||
const distance_au_centre = 719;
|
||
// avoir l'angle des roues
|
||
CanFrame comm;
|
||
comm.data.id = 'D';
|
||
comm.data.rtr = 0;
|
||
comm.data.val = 0;
|
||
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
snd_dtq(CanTx, comm.msg);
|
||
|
||
// rester au centre
|
||
|
||
|
||
dist = distance_telemetre();
|
||
//if(dist > distance_au_centre)
|
||
|
||
}*/
|
||
|
||
|
||
void main()
|
||
{
|
||
ports_mcu();
|
||
... | ... | |
can_init();
|
||
clavier_init(1);
|
||
capture_init();
|
||
sta_tsk(ID_asserv_tourelle);
|
||
//asserv_roue();
|
||
//demarrer();
|
||
rot_tourelle();
|
||
pos_tourelle();
|
||
asserv();
|
||
distance_telemetre();
|
||
while(1){
|
||
}
|
||
|
branch/fichot/Emb_App/conf_noyau.cfg | ||
---|---|---|
//
|
||
// kernel.cfg : building file for MR308 Ver.4.00
|
||
//
|
||
// Generated by M3T-MR308 GUI Configurator at 2013/01/08 15:28:33
|
||
// Generated by M3T-MR308 GUI Configurator at 2018/12/11 17:01:15
|
||
//
|
||
////////////////////////////////////////////////////////////////////////////////
|
||
|
||
// system definition
|
||
system{
|
||
stack_size = 256;
|
||
priority = 8;
|
||
priority = 9;
|
||
system_IPL = 4;
|
||
message_pri = 1;
|
||
timeout = YES;
|
||
... | ... | |
|
||
// max definition
|
||
maxdefine{
|
||
max_task = 3;
|
||
max_task = 4;
|
||
max_flag = 3;
|
||
max_dtq = 2;
|
||
max_cyh = 1;
|
||
... | ... | |
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = asserv_tourelle();
|
||
name = ID_asserv_tourelle;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 9;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
flag[]{
|
||
name = ev_bus_fin_tr;
|
Formats disponibles : Unified diff
fin séance2
asservissement tourelle fini,
fonction calcul distance_telemetre quasi finie